Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Contact form using 11ty and Valibot

@joshjavier

Desktop design screenshot for the Contact form coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
2junior
View challenge

Design comparison


SolutionDesign

Solution retrospective


What are you most proud of, and what would you do differently next time?

I'm proud of taking a "first principles" approach and implementing the CSS and JS without a bundler, only using the native import features available in the browser. Not exactly ideal from a performance perspective, but it's good for learning. I promise I'll use a bundler next time. 😉

What challenges did you encounter, and how did you overcome them?

HTML forms. Dividing the work in stages definitely helped keep things sane and manageable. So first I worked on structuring them semantically, then making sure they follow the design, and finally adding field validations. It's frustrating when I encounter a gotcha, but coming up with a workaround feels pretty satisfying. 😌

What specific areas of your project would you like help with?

For accessibility testing, I'm limited to using VoiceOver on my iPhone SE, so feel free to let me know how I can improve the accessibility implementation. Of course, you can comment on other parts of the code as well!

Community feedback

T
Grace 30,550

@grace-snow

Posted

There's a few accessibility problems here.

  1. Use the autocomplete attribute on the fields that can be auto filled.
  2. You don't need role alert as well as aria-live. Stick to aria-live, then use aria-desciribedby on he input pointing to the ID of its error. That way, the errors and inputs will be programmatically linked.
  3. Add focusable="false" to the svgs. They are added to the tab order by some screen readers.

Marked as helpful

1

@joshjavier

Posted

Thanks @grace-snow! These are very helpful points. I've already applied the changes to my solution.

0

Please log in to post a comment

Log in with GitHub
Discord logo

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord