-
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
$500 - Audit forms and fix inconsistencies with focus, tab and shift + tab behavior 4/4 #7918
Comments
Triggered auto assignment to @MitchExpensify ( |
Triggered auto assignment to @MonilBhavsar ( |
Note: decision to split this main issue up into smaller issues came from this convo |
How does that change the normal contributor management process @dylanexpensify ? Thanks |
@MonilBhavsar, @MitchExpensify Whoops! This issue is 2 days overdue. Let's get this updated quick! |
Bumping the above @dylanexpensify |
Ah, we basically decided to break the issues into four smaller issues since we weren't sure about milestones. So now just proceed as normal, posting onto Upwork, adding exported, etc! |
Is this a part of "New Expensify forms"? |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @parasharrajat ( |
Triggered auto assignment to @pecanoro ( |
ProposalI will wrap each modal page in I did it only for the import React, {useRef, useEffect} from 'react';
import {View} from 'react-native';
import PropTypes from 'prop-types';
import FocusTrapLib from 'focus-trap-react';
import { useIsFocused } from '@react-navigation/native';
const propTypes = {
children: PropTypes.node.isRequired,
};
function FocusTrap(props) {
const isFocused = useIsFocused();
const lastFocusedElement = useRef(null);
useEffect(() => {
if(isFocused) {
lastFocusedElement.current = document.activeElement;
return;
}
if(lastFocusedElement.current) {
lastFocusedElement.current.focus();
}
}, [isFocused]);
return (
<FocusTrapLib active={isFocused}>
<View>
{props.children}
</View>
</FocusTrapLib>
);
}
FocusTrap.propTypes = propTypes;
FocusTrap.displayName = 'FocusTrap';
export default FocusTrap; ResultScreen.Recording.2022-03-10.at.1.13.53.AM.mov |
This is not the final code there will be some refactoring. This is the base minimum to propose a solution. And also every other components will be refactored the same way. |
@mdneyazahmad what's the last update on this? |
Still working on the linked PR, though in any case, I don't think this is a focus for WAQ per this Slack thread. Adding a hold as a result. |
Still on HOLD |
Taking this off hold. |
Note: Now that this is off hold, I think we have a decision before us. Do we do anything at all? I actually vote no, we shouldn't. I still don't think keyboard navigation is a priority – including but not limited to tab, shift + tab, etc. – so better to close this issue and move on. Please let me know if I'm missing something! |
This comment was marked as off-topic.
This comment was marked as off-topic.
I think that's reasonable to me. The pages in this issue have either already changed (Settings - Profile) or will be changed significantly as part of passwordless (Settings - Change Password, Login form), which would leave us with:
With that in mind, I think we might be good to close this one out! |
Agree with closing for all the reasons stated above! |
Thanks for hearing me out! |
I have been assigned to this issue a long time ago, and have been constantly working on it. As this is a part of a larger issue broken into 4. I am assigned 3 of these including this. There are some challenges to fix the issues, and there have been some discussions in the past that took a long time. There are two PR raised that fixes this issue #8874 and #12370. I think contributor involved in this issue should be paid. Thank you! |
Payment for this issue is still pending. There was multiple PR involved for these issues titled |
@MitchExpensify Can you open an internal discussion about the above in Slack? 🙇♀️ |
Ok to summarize how this played out to make sure I'm following: Audit form inconsistencies were broken into four issue:
@mdneyazahmad is assigned to 2, 3, & 4 and received/will be receiving compensation for 2 & 3. With regards to compensation for 4 (this issue): We ultimately decided to do nothing but work was completed (e.g. #8874 and #12370) that fixed inconsistencies flagged in the issue. As such, and for the work throughout being assigned to this issue, we need to agree on a fair figure. Does that summarize where we're at? Just want to be sure we're on the same page before posting in Slack to land on the fair figure |
@MitchExpensify first of all all of these issues are of similar nature, maybe there was not require to break into 4, but it was broken into 4 to keep it simple.
I think the original price for this issue is justified. Maybe @parasharrajat has some input. Thank you |
I definitely agree with @mdneyazahmad. Technically, no PR was done for #7917 but it is still priced at 2k. Main work was done for 2 and 4. 3 was put on hold during the PR review. So I think 500 for C+ in this issue is less. But I am fine with it as it was the price when the job was assigned (based on the process). |
Thank you both! I appreciate that extra context a lot. I've proposed this compensation in Slack and will issue payment accordingly! |
Paid @parasharrajat via bonus on the old Upwork Job contract. I've invite you, @mdneyazahmad, to the new Upwork posting here for payment seeing as the old one closed. Lemme know when you've accepted! Thanks for your patience |
@MitchExpensify accepted! |
Awesome! Paid and contract ended. Thanks again everyone! |
We should audit all our forms and fix any inconsistencies with focus, tab, shift + tab and enter behavior. The expected behavior is as follows:
Tab
navigates to the next input.Shift + tab
navigates to the previous input.Enter
submits the form.Space
toggles checkboxes/dropdowns.Note: We should make sure that tabbing cycles through the form in an order that makes sense, usually top to bottom.
Here's a list of forms to be audited:
The text was updated successfully, but these errors were encountered: