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

Pricing component with toggle using React and TypeScript

#react#typescript#accessibility

@dostonnabotov

Desktop design screenshot for the Pricing component with toggle coding challenge

This is a solution for...

  • HTML
  • CSS
  • JS
2junior
View challenge

Design comparison


SolutionDesign

Solution retrospective


Hey, there! 👋

🤖 This is my solution for the Pricing component with toggle challenge using React and TypeScript.

  • Built switch toggle only using CSS
  • Dynamically generated data using JSON
  • CSS custom properties are always here to save my day
  • Learned not to put centering styles in the <body> element, but rather in the <div id="root"> in React. It took me some time to figure that out

❓ Questions:

  • How can I improve the accessibility of the switch toggle? Because it's hard to know whether it's set to "annually" or "monthly" except for the visual representation.
  • I used the useState hook to pass down the value to the Toggle component along with its function to update its state. Is it a good idea to implement it this way?
  • Which one would have worked better to pass the data: State or Context? And, why?
  • And, I am open to other suggestions.

📈 Updates:

  • Based on received feedback and suggestions, improved the accessibility of the website.

Thanks for reading. Really appreciate any feedback and advice!

Community feedback

Maxence 170

@MaeWolff

Posted

Hi Doston :) !

Congrats on your posting

Marked as helpful

1

@0xabdulkhaliq

Posted

Hello there 👋. Congratulations on successfully completing the challenge! 🎉

  • I have other recommendations regarding your code that I believe will be of great interest to you.

HTML 🏷️:

  • This solution may cause accessibility errors due to lack of semantic markup, which causes lacking of landmark for a webpage and allows accessibility issues to screen readers, due to accessibility errors our website may not reach its intended audience, face legal consequences, and have poor search engine rankings, highlighting the importance of ensuring accessibility and avoiding errors.
  • What is meant by landmark ?, They used to define major sections of your page instead of relying on generic elements like <div> or <span>. They are use to provide a more precise detail of the structure of our webpage to the browser or screen readers
  • For example:
    • The <main> element should include all content directly related to the page's main idea, so there should only be one per page
    • The <footer> typically contains information about the author of the section, copyright data or links to related documents.
  • So resolve the issue by replacing the react's root node <div id="root"> with the proper semantic element <main> in your index.html file to improve accessibility and organization of your page

.

I hope you find this helpful 😄 Above all, the solution you submitted is great !

Happy coding!

1

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