-
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
[C+ Checklist Needs Completion] [$1000] Keyboard navigation and selection is inconsistent in Split Bill UI #21392
Comments
Triggered auto assignment to @greg-schroeder ( |
Bug0 Triage Checklist (Main S/O)
|
I reproduced this. Although the keyboard navigation seems fine to me, the "enter" functionality does seem to be buggy: 2023-06-23_15-24-52.mp4 |
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. |
Job added to Upwork: https://www.upwork.com/jobs/~015b770640f03d0c88 |
Current assignee @greg-schroeder is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @mollfpr ( |
ProposalPlease re-state the problem that we are trying to solve in this issue.Keyboard navigation starts working incorrectly while selecting/deselecting members if user clicked on one of the members before. When user press "enter" for any member - select checkmark immediately returns to previous state. Sometimes 2 members are selected / deselected instantly instead of 1 What is the root cause of that problem?After this PR, the OptionRow is now accessible, when we click on it initially, the What changes do you think we should make in order to solve the problem?We're having 2 focused OptionRows now:
We need to align those focus so that there'll be only 1 focused OptionRow, we can do that by:
Steps:
What alternative solutions did you explore? (Optional)NA |
ProposalPlease re-state the problem that we are trying to solve in this issue.The issue arises when the user navigates the Split Bill interface using keyboard commands. The selection and deselection of members using the up/down arrow keys and the enter key does not behave as consistently as one would expect. What is the root cause of that problem?This problem could be stemming from how the keyboard events are being handled in the Split Bill UI. It seems the interface isn't fully optimized to respond to keyboard interactions as efficiently as it should. What changes do you think we should make in order to solve the problem?I propose diving into the pertinent parts of the code, specifically files like src\pages\iou\SplitBillDetailsPage.js, and scrutinizing the event handlers tied to keyboard navigation. It's possible that refining these handlers or the state management associated with them can lead to the seamless keyboard-based user experience you're aiming for. Let me assure you, with my experience and familiarity with similar issues, there's nothing unsolvable here. I am quite confident in delivering a robust solution that rectifies this issue and enhances the overall usability of the Split Bill UI. |
ProposalPlease re-state the problem that we are trying to solve in this issue.There are two problems here:
What is the root cause of that problem?
What changes do you think we should make in order to solve the problem?
|
ProposalPlease re-state the problem that we are trying to solve in this issue.In SplitBill confirmation page where users are selected, if we select/deselect one of the participants and then try to select/deselect with keyboard, the checkboxes toggling is not what we want. What is the root cause of that problem?After selecting a row with mouse click, if we click one of the arrow keys, this mouse click selected row gets selected. If we move the selection up or down with arrow keys this mouse click selected row remains focused and another row is also focused depending on the up or down clicks. So, when we click What changes do you think we should make in order to solve the problem?We should remove the previous selections when in
What alternative solutions did you explore? (Optional)None. Since, the Result Screen.Recording.2023-06-26.at.8.33.10.AM.mov |
Reviewing now |
It's better to fix the selection focus to be aligned with the options focus. @dukenv0307 While preventing the browser selection selecting the option fixes this issue, but it will create another issue focused option is not selected on enter. We should find a way to keep our focus control so the browser can work together.
@ygshbht What changes do you suggest? We also have the same issue while selecting the members on the invite new member page.
@jeet-dhandha How? @c3024 Blurring the browser selection is not preventing both focused options from being selected. It's just dismissing the browser selection. |
Thanks for the review. Only one option focused by keyboard gets selected on clicking Enter after blurring the active element. Video attached shows the same. Am I missing something? |
I don't get what you mean. Could you elaborate? It's still a workaround. For now, the best solution is integrating browser selection and arrow key focus on the option item. We need to make sure that the browser accessibility is still can be used, so our focus control and selection. |
@mollfpr you mean the one mentioned in my alternative solution should be in the scope of the ticket right? |
@dukenv0307 I don't understand why it's out of the scope of the ticket. When users access the option by pressing the tab and pressing enter, they expect the focused option should be selected. |
@mollfpr I misunderstood your earlier comment. My suggestion does not fix the integration of browser focus and keyboard focus. |
Work continues on the linked PR - @mollfpr there's an outstanding question for you if you're able to take a look ASAP <3 |
This issue has not been updated in over 15 days. @joelbettner, @mollfpr, @greg-schroeder, @dukenv0307 eroding to Monthly issue. P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do! |
|
The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.25-10 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue: If no regressions arise, payment will be issued on 2024-01-24. 🎊 For reference, here are some details about the assignees on this issue:
|
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:
|
Thanks @Pujan92 for the notice, I'll check it in the morning. |
Okay - can you confirm for me ASAP @mollfpr? I'm going to hold off on the payment for now until I know what the payment amount should be taking regressions into account |
I tested the changes on the PR #32464, and yes, it did cause the issue here: #34761. The selected proposal and the root cause explanation indicate that we wrongly passed the component as a function, which makes the issue. @greg-schroeder I'm not sure how we seeing this as a regression or a side effect of the improvement we did. |
@mollfpr Yeah I see what you're saying. While it was maybe caused by it, it's not really a regression in the traditional sense |
The upwork job for this closed a long time ago due to inactivity so I will create a new one |
Offers sent to @mollfpr and @dukenv0307 Can you complete the checklist @mollfpr? Thanks! |
No offending PR.
The regression step should be good.
|
@greg-schroeder You can cancel the offer for me; I'll do a manual request in NewDot. Could you give me the payment summary? Thank you! |
Oh, woops, I forgot, I'll cancel the offer. @mollfpr is due $1k for this job |
Filed regression test, closing this out, I'll pay you right away once you accept offer @dukenv0307 |
$1,000 approved for @mollfpr based on this comment. |
@greg-schroeder Accepted, thank you! |
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 [email protected] to request to join our Slack channel!
Issue found when executing PR #21310
Action Performed:
Expected Result:
User can successfully select/deselect members for split bill using keyboard navigation
Actual Result:
Keyboard navigation starts working incorrectly while selecting/deselecting members if user clicked on one of the members before. When user press "enter" for any member - select checkmark immediately returns to previous state. Sometimes 2 members are selected / deselected instantly instead of 1
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.3.31.2
Reproducible in staging?: Yes
Reproducible in production?: Yes
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
Bug6103631_Recording__726.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: