Design comparison
Solution retrospective
Any feedback is welcome.
Community feedback
- @pikapikamartPosted about 3 years ago
Hey, awesome work on this one. Desktop layout looks really great, it is responsive and the mobile state looks great as well.
Some suggestions would be:
- First, you should have nest the
section
on the markup inside themain
since it is one of the main content of the page and because it should be inside a landmark element. - Avoid using
id
attribute as a selector in css because it is a bad practice due to css specificity. Useclass
to target elements. - Website-logo should not be inside the
nav
since it is not being treated as a link, usea
tag on it with an appropriatearia-label
and use it on thenav
. - Website-logo
img
should be using the website's name as thealt
likealt="loopstudios"
. Remember that a website's logo is meaningful so always make sure it uses the properalt
value. - Also when using
alt
attribute, avoid using words that relates to "graphic" such as "logo" and others. Animg
is already an image/graphic so no need to describe it as one. - Do not directly type the wordings as uppercase on the markup, if you do this, screen-reader will read the text letter-by-letter and not by the wordings. Use only the lowercase version to write in the markup and instead use
text-transform: uppercase
on it. - Other images that are used could have use a better
alt
because what doesalt="interactive.jpg"
means? Right. - When wrapping a text-content do not just use
span
to wrap it, use meaningful element like ap
tag if it just a regular text or heading tag if it is an heading. see all
should be usinga
tag since it will be more like a link on a real site, a page-link where users can "see all" creations.- You could use
ul
on the creations since those are "list" of creations. - Also, you could have use
a
tag inside the creation's title since again, on a real site, it would be a link to view a single creation.
FOOTER
- Same for the website-logo it should use the website name as the
alt
value. - Links below the logo could have use
nav
since those are still your website's navigational links. - Each
a
tag that wraps social media, it should have eitheraria-label
attribute or screen-reader element inside it. The value for whatever method you will use should be the name of the social media likearia-label="facebook"
on the facebook linka
tag. This way, users will know where this link would take them. img
for the social-medias should be hidden since those are only decorative images, so usealt=""
and extraaria-hidden="true"
on it.
MOBILE
- Remove the
width: 100vw
on the#banner
as this causes horizontal scroll. - Hamburger menu should be using a
button
element since it is a control. Again, interactive components uses interactive elements. By usingdiv
you are making it not-accessible.
SUPPOSING BUTTON IS USED
- The
button
will be using the method I mentioned usingaria-label
attribute or screen-reader element inside. The value will describe what does thebutton
do. The value could bearia-label="navigational dropdown menu"
. - The
img
inside thebutton
should be hidden, use the method I mentioned above. - The
button
should have a defaultaria-expanded="false"
attribute on it. It will be set totrue
if the user toggles thebutton
.
Aside from those, great work again on this one.
Marked as helpful1@ErayBarslanPosted about 3 years ago@pikamart Thank you for the detailed review! I noticed some of them after submitting. Though new things learnt regarding accessbility by your comment.
For hamburger menu, in this project I wanted go with full CSS, hence I used checkbox instead button. But I guess it would be better to use aria-label and tabindex on the label for accessbility. In the long run I'll be using button with JS for toggle menu. This was more of a challenge when I saw in the brief it could be done without JS.
Anyways thanks for your time this was really helpful :)
1 - First, you should have nest 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