Skip to content
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

Implement Advanced Contact Form with Accessibility, Responsiveness, Real-time Validation, and Enhanced User Experience Description: #147

Closed
Titus210 opened this issue Oct 6, 2024 · 2 comments · Fixed by #196
Assignees
Labels
enhancement New feature or request good first issue Good for newcomers gssoc gssoc-ext hacktoberfest Contribute for Hacktoberfest hacktoberfest-accepted Hacktoberfest Accepted level3 Hard level

Comments

@Titus210
Copy link
Contributor

Titus210 commented Oct 6, 2024

Issue Overview:

I would like to contribute by implementing an advanced version of the contact form that aligns closely with the provided design specifications while enhancing accessibility, responsiveness, and user experience. This implementation will include dynamic error handling, screen reader support, keyboard navigation, and real-time validation, along with an option to save draft inputs locally.

Proposed Solution:

The solution is from one of the frontend mentor challenges Contact Form
The project images are below

desktop-design

The solution will cover the following aspects:

1. Accessibility Features:

  • Use aria-live regions to announce error messages and success messages for screen reader users.
  • Implement aria-labels and aria-describedby attributes for form inputs to ensure clear instructions and context for screen readers.
  • Manage focus state during validation errors and form submission, providing appropriate feedback for keyboard-only users.

2. Form Validation:

  • Implement client-side form validation with real-time feedback for all input fields, including:
  • Required fields check for "Name", "Email", and "Message".
  • Real-time email validation using a regular expression pattern.
  • Display error messages dynamically next to invalid input fields with smooth animations.

3. Enhanced User Experience:

  • Create animated transitions for displaying and hiding error messages, using subtle fade-in and slide-in effects.
  • Display a custom success toast message upon successful form submission, including:
  • Dismiss button for manual closing.
  • Auto-hide feature to remove the toast after 5 seconds.

focus-and-active-state
hover-state

4. Responsive Design:

  • Implement responsive styling to ensure the form adapts to different screen sizes, providing an optimal experience on mobile, tablet, and desktop devices.
  • Include media queries to adjust form layout, padding, and touch target sizes for accessibility on smaller screens.

mobile-design

5. Save Draft Feature:

  • Allow users to save form input data locally using local storage, so they don’t lose progress if the page is accidentally refreshed or closed.
  • Automatically load saved draft data when the user revisits the page, pre-filling the form with their previous inputs.
  • Include a “Clear Draft” button to reset the form and clear local storage data if the user wishes to start over.

6. Keyboard Navigation and Focus Management:

  • Ensure the form can be completed using only the keyboard by managing focus for each form element.
  • Shift focus to the first invalid input upon form validation errors.
  • Shift focus to the success toast message upon successful submission for better user feedback.

7. Expected Outcome:
The enhanced contact form will provide a smooth and accessible experience for all users, including those using screen readers or keyboard-only navigation. It will be responsive across various device sizes, offer real-time feedback during form input, and ensure no data is lost with the Save Draft feature. Additionally, subtle animations and dynamic error messages will contribute to an overall improved user experience.

@beRajeevKumar Let me know if I can proceed with this implementation or if there are additional guidelines or features, you’d like to include like what to name the project folder i.e 25-Contact-form. Thank you!

@beRajeevKumar beRajeevKumar added enhancement New feature or request good first issue Good for newcomers hacktoberfest Contribute for Hacktoberfest gssoc-ext gssoc level3 Hard level hacktoberfest-accepted Hacktoberfest Accepted labels Oct 6, 2024
@beRajeevKumar
Copy link
Collaborator

Go for it man 🚀

@Titus210
Copy link
Contributor Author

Titus210 commented Oct 6, 2024

Sure...I will be updating the repo soon😊💯.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers gssoc gssoc-ext hacktoberfest Contribute for Hacktoberfest hacktoberfest-accepted Hacktoberfest Accepted level3 Hard level
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants