@MohMostafa-Web
Posted
Thanks so much for your suggestions
Submitted
@MohMostafa-Web
Any feedback is welcome.
@MohMostafa-Web
Posted
Thanks so much for your suggestions
@pikapikamart
Posted
Hey, really awesome work on this one. Desktop layout looks really great, it is responsive and the mobile state looks really great as well.
Some suggestions would be:
<header />
<main />
<footer />
This way, all element that has content are inside their respective landmark elements.
header
, it usually only contains the top-most part of the site which include the logo, navlinks.a
tag should either use aria-label
or screen-reader only text inside it, that defines where this link would take the user. Since typically a website-logo links to homepage, use "homepage" as the value for what ever method you will use.img
should be using the website's name as the alt
like alt="manage"
. Remember that a website's logo is meaningful so always make sure it uses the proper alt
value.alt
attribute, avoid using words that relates to "graphic" such as "logo, illustration" and others. An img
is already an image/graphic so no need to describe it as one.outline
property of an element, make sure to add another custom visual indicator on the element's :focus-visible
state. Try using tab on your keyboard to navigate the site, you will have a hard time since there is no indication on where you at.ul
on the .features-content
since those are "list" of features of the manage.01
and others , you could make use of pseudoelement like:.test::after{
content: "01";
align-items: center;
display: flex;
justify-content: center;
....
......
}
So that it won't be pick up as a text-content when using screen-reader.
<figure>
<img src="" alt="">
<blockquote>
{qoute in here}
</blockquote>
<figcaption>
person name
<p>
person role
</p>
</figcaption>
</figure>
Then you could just use grid
to place the content in their own row like on the design.
alt
for the img
.alt
attribute, avoid using words that relates to "graphic" such as "img, avatar" and others. An img
is already an image/graphic so no need to describe it as one.FOOTER
svg
to give it an descriptive text, use this method:<svg aria-describedBy="website-logo">
<title id="website-logo">manage</title>
......
</svg>
aria-label
for each of the a
tags.nav
for the 7 links since those are still your navigational links, only they are secondary.ul
for those 7 links since they are all related to one another and just use grid
to place each item properly.input
tag lacks an associated label
tag on it. Since there are visible-label, the label
would be a screen-reader only label, meaning it would make user of like sr-only
class. The text-content should describe what the input
needs like the value on the placeholder
.button type="submit"
instead of input
.input
. To make it accessible, here is a pseudocode of the input should work:if ( input is wrong )
input.setAttribute("aria-invalid", "true");
input.setAttribute("aria-describedBy", id of the error-message);
else
input.removeAttribute("aria-invalid");
input.removeAttribute("aria-describedBy");
The error-message element should have an id
attribute which is referenced by the aria-describedBy
attribute on the input
element. By doing that, your user will know that the input
is wrong because of aria-invalid
and they will know what kind of error they made because of the aria-describedBy
aria-live
element that will announce if the form
submission is a success or not. Have a look at this snippet that I have about accessible form let me know if you have queries about this one.MOBILE
img
that are inside the hamburger-menu should be hidden since they are just decorative. Decorative image must be hidden at all times for screen-reader users by using alt=""
and extra aria-hidden="true"
attribute on the img
tag.Aside from those, site looks really great and awesome work again on this one.
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