Design comparison
Solution retrospective
This is my first project that with JS. I'm happy with the result I've learned a lot with events, with that I made my first Hamburger menu with pseudo-element in Css I studied other selectors, I found the :nth-child() selector very interesting with everything I realize that I should work more on larger projects , because the level of learning is very voluminous. I would like you to see my code and give some tips on how to improve. Thank you very much in advance.
Community feedback
- @PhoenixDev22Posted about 2 years ago
Hi @Gushigustavo,
Congratulation on completing this challenge Excellent work! I have some suggestions regarding your solution if you don’t mind:
- You can use the website's name as an alternate text. You may set alt=”Sunnyside" , it’s better to place it in the
<nav>
as it does navigate the user. The same for the footer’s logo.
- It’s not recommended to add event listener on non interactive elements.
- As the button has no discernible name, put an aria-label on your trigger to describe its purpose. For example, you can have: aria-label='Mobile Navigation Trigger' or 'Open Menu.’
- Add and toggle an aria-expanded attribute to your button letting the user know if the content the button controls is expanded or not. At first, it has the “false” as a value then you use JavaScript to change the value.
- You should use
aria-controls
attribute on the toggle element, it should reference theid
value of the<ul>
element.
- look up a bit more about how and when to write alt text on images. Learn the differences with decorative/meaningless images vs important content for example
icon-arrow
For decorative images, you set an emptyalt
to it with anaria-hidden=”true”
to remove that element from the accessibility tree. This can improve the experience for assistive technology users by hiding purely decorative images.
- Use the
<nav >
landmark to wrap the footer navigation witharia-label=”secondary “
oraria-label=”footer”
. A brief description of the purpose of the navigation, omitting the term "navigation", as the screen reader will read both the role and the contents of the label. Thenav
element in the header could use anaria-label="primary"
oraria-label=”main”
attribute on it. The reason for this is that, You should add thearia-label
for a nav element if you are using the nav more than once on the pag..you can read more in MDN
- you may use semantic an unordered list
<ul>
to wrap the social links you put your links within an unordered list structure so that a screen reader will read out how many things are in the list to give visually impaired users the most information possible about the contents of the navigation.
- The links wrapping the social images must have aria-label or sr-only text indicate where the link will take the user. Then add
aria-hidden=”true”
to the images that make them be ignored by screen readers to avoid redundancy and repetition.
- Adding
rel="noopener"
orrel="noreferrer"
totarget="_blank"
links. When you link to a page on another site using target=”_blank” attribute , you can expose your site to performance and security issues.
Aside these, Great job on this one. Hopefully this feedback helps.
0 - You can use the website's name as an alternate text. You may set alt=”Sunnyside" , it’s better to place it in the
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