Interactive rating component using html, css and js
Design comparison
Solution retrospective
Completed this interactive rating component using html, css and js. Practiced DOM manipulation and event handling.
Community feedback
- @0xabdulkhaliqPosted over 1 year ago
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 generates accessibility error reports, "All page content should be contained by landmarks" is due to
non-semantic
markup, which lack landmark for a webpage
- So fix it by replacing the
<div class="container">
element with the semantic element<main>
in yourindex.html
file to improve accessibility and organization of your page.
- 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 convey the structure of your page. 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
HEADINGS โ ๏ธ:
- And, this solution has also generated accessibility error report due to lack of level-one heading
<h1>
- Every site must want at least one
h1
element identifying and describing the main content of the page.
- An
h1
heading provides an important navigation point for users of assistive technologies, allowing them to easily find the main content of the page.
- So we want to add a level-one heading to improve accessibility by reading aloud the heading by screen readers, you can achieve this by adding a
sr-only
class to hide it from visual users (it will be useful for visually impaired users)
CSS ๐จ:
- let me explain, How you can easily center the component.
- We don't need to use
margin
andpadding
to center the component both horizontally & vertically. Because usingmargin
orpadding
will not dynamical centers our component at all states
- To properly center the component in the page, you should use
Flexbox
orGrid
layout. You can read more about centering in CSS here ๐.
- For this demonstration we use css
Grid
to center the component
body { min-height: 100vh; display: grid; place-items: center; }
- Now remove these styles, after removing you can able to see the changes
.container { margin-top: 7.8em; }
.
I hope you find this helpful ๐ Above all, the solution you submitted is great !
Happy coding!
Marked as helpful0 - @0xabdulPosted over 1 year ago
Hello Developer well congratulations on successfully completing the Interactive rating component
- A Little bit suggestions for improve your code
- In Html ๐ :
- LANDMARK ๐
- The main landmark should be a top-level landmark When a page contains nested document and/or application roles (e.g. typically through the use of iframe and frame elements), each document or application role may have one main landmark. If a page includes more than one main landmark, each should have a unique label.
- To Clear the Accessibility reports use the Semantic elements Or non - Semantic elements
- Note This Elements are don't sikp
- semantic elements :
<aside> , <artical> , <main>, <header> ,<section><footer>, <form> ect..
- non- semantic elements :
<div> , <span> ect ...
- for easy way to clear the Accessibility reports using non semantic elements Ex :
<body> <div class="container" role="main"> /html code goes here : ๐ </div> </body>
- Or
- using semantic elements
- Ex :
<header> should be put heading or logo๐ธ </header> <nav> //Links here </nav> <main> Main of the contents ๐ </main> <footer> ยฉcopy right here๐ </footer>
- HEADING โ ๏ธ
- The page must contain at least one h1 element identifying and describing the main content of the page. An h1 heading provides an important navigation point for users of assistive technologies, allowing them to easily find the main content of the page.
- So fix them
- Ex :
<h1> </h1> <h2> </h2> <h3> </h3>
- Note : we use the headings line by line in order way
- In Css ๐จ :
- And your Interactive rating component is not center aligning so fix them
- Ex :
body { display:grid; place-items:center; margin:0; height:100vh; }
- I Hope you find the solution and it's useful for you and your project is great Happy Coding Developer
Marked as helpful0 - @Daniel-BilodidPosted over 1 year ago
Hi, my congratulations you did a great job ๐
๐๐จ๐ฆ๐ ๐ญ๐ข๐ฉ๐ฌ ๐๐จ๐ซ ๐ฒ๐จ๐ฎ๐ซ ๐๐จ๐๐ ๐
๐น About margin-top
You can set
<div class='rating'>
to
.rating { margin-top: 100px; }
it will help you to center your element
๐น You need to put a landmark in your code
simply wrap your code with <main class='rating'> landmark instead of <div class='rating'>
๐ The <main> HTML element is intended for the main content (content) of the <body> of the document (page).
I hope it was helpful, you are great, keep up the good work ๐
0
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