Design comparison
Solution retrospective
What did you find difficult while building the project?
-This was my first project using both React / NextJS and Tailwind CSS, so there was a learning curve to grasp the core of the frameworks. I struggled with the onClick function as it wasn't triggering on Firefox. I'm still looking for a solution to that problem. I'm curious to know how others managed.
Which areas of your code are you unsure of?
-The button I mentioned above. I'm not sure if the way I did it is the optimal way, since it doesn't seem to work on every browser.
Do you have any questions about best practices?
-Since this was a relatively small project, I didn't get to try many things. But I wonder how certain aspects of vanilla JavaScript like classes translate to React / NextJS. If the logic for these is not meant to be displayed to the DOM, should I still keep it within a React component? Or are React components only for manipulating the DOM?
Community feedback
- @0xabdulkhaliqPosted over 1 year ago
Hello there 👋. Congratulations on successfully completing the challenge! 🎉
- I have some recommendations regarding your code that I believe will be of great interest to you.
BUTTONS 🔴:
- This solution generates accessibility error reports due to lack discernible text for
<button>
element
- The
<button>
must have discernible text that clearly describes the destination, purpose, function, or action for screen reader users.
- Screen reader users are not able to discern the purpose of elements with role="link", role="button", or role="menuitem" that do not have an accessible name.
- The
<button>
name rule has five markup patterns that pass test criteria:
<button id="al" aria-label="Name"></button> <button id="alb" aria-labelledby="labeldiv"></button> <div id="labeldiv">Button label</div> <button id="combo" aria-label="Aria Name">Name</button> <button id="buttonTitle" title="Title"></button>
-
Ensure that each
<button>
element and elements withrole="button"
have one of the following characteristics:- Inner text that is discernible to screen reader users.
- Non-empty
aria-label
attribute. aria-labelledby
pointing to element with text which is discernible to screen reader users.role="presentation"
orrole="none"
(ARIA 1.1) and is not in tab order (tabindex="-1"
).
I hope you find this helpful 😄 Above all, the solution you submitted is great !
Happy coding!
Marked as helpful1
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