Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted over 1 year ago

Remove and add a display class when submitting the form using JS.

Michael Degorre•160
@MDEGORRE
A solution to the Interactive rating component challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


Hello, this is my first challenge submitted.

My process:

  • get the input checked value when form is submitted.
  • replace the content adding a display: none property.

Feel free to give me any advices please !

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • Grace•32,130
    @grace-snow
    Posted over 1 year ago

    Looks good overall but there is room for improvement:

    1. All content should be contained within landmarks. That means both form panels should be in main, and attribution in footer.
    2. Decorative icons should have empty alt
    3. The radios should be in a fieldset with a legend (or visually-hidden legend). It's like the question is not associated to the answers in any way right now.
    4. In js don't get the selected value from a quest selector! Get it from the form data. The chosen value is already available to you with this.rating.value (ie form.rating.value where "rating" is the name of the field whose value you want)
    5. Consider using the hidden attribute for showing and hiding instead of a class (optional)
    6. The thank you panel should be wrapped in an extra div that has aria-live on it and is always present in the DOM (I.e. Is not display none). This means the thank you content would be announced to assistive tech users when it appears.
    7. Never limit the height of elements that contain text, including the body. Min-height is fine to use, height is not.
    8. Do not set an explicit width on the component. Use max-width instead.
    9. Never set font size in px, not even once
    10. The radios must be inclusively hidden! That means using a visually-hidden class not setting opacity to 0, which can lead to elements being hidden from some screen readers.
    11. This challenge does not need a media query. But if it did (note for future challenges) that media query would need to be min width in a mobile first layout (99% of styling will be mobile first) and would need to be defined in rem or em not px.
    12. Make sure the component has a little margin on all sides or a wrapping element (eg body in this case) has a little padding on all sides, so the component cannot hit screen edges for any users. It can currently hit screen edges on the top and the bottom on mobile and on all sides on larger screens for users with larger text sizes
    Marked as helpful

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
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit 1st-party linked stylesheets, and styles within <style> tags.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

Frontend Mentor for Teams

Frontend Mentor for Teams helps companies and schools onboard and train developers through project-based learning. Our industry-standard projects give developers hands-on experience tackling real coding problems, helping them master their craft.

If you work in a company or are a student in a coding school, feel free to share Frontend Mentor for Teams with your manager or instructor, as they may use it to help with your coding education.

Learn more

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub