Interactive Rating Component - TypeScript (Vanilla)
Design comparison
Solution retrospective
I tried doing this "vanilla" to see how much work needs to be done, in contrast as to how much I take for granted stuff that is done "magically" in React. The reason for TypeScript was just for the added challenge and me wanting to use TS as baseline. Seing I don't usually use vanilla just doing this was quite difficult, and I do not really know how my solution meets the "best practises". Any suggestions to what I could do better?
Community feedback
- @VCaramesPosted almost 2 years ago
Hey there! 👋 Here is some feedback to further improve your code:
- Every site should ALWAYS have ✅ a
main
element not only for semantic purposes but also to help assistive technology find the main content of your content. For this challenge, it will serves as the component’s container ⚠️.
More Info: 📚
- The “icons/illustrations” in this component are purely decorative. ⚠️ Their
alt tag
should be left blank to hide them from assistive technology.
More Info:📚
https://www.w3.org/WAI/tutorials/images/
- The HTML for the ratings needs to be rewritten as it was done incorrectly ❌:
To ensure that the "rating buttons" are fully accessible 💯, they need to be built using a
form
⚠️.- Everything will be wrapped inside a
fieldset
which will have alegend
that is visually hidden using CSS. - Inside, there should be five
input radios
and eachinput
should have alabel
attached to it to make the “ratings” accessible. - The last thing you will want to include will be a
button
so users can submit their choice.
More Info: 📚
- Once the top is implemented , for your JS, the
eventListener
should be on theform
⚠️ as asubmit
.
More Info:📚
Click vs. Submit EventListeners
If you have any questions or need further clarification, you can always check out my submission and/or feel free to reach out to me.
Happy Coding! 🤖
Marked as helpful0 - Every site should ALWAYS have ✅ a
Please log in to post a comment
Log in with GitHubJoin 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