Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted 8 months ago

FAQ_Accordion_Typescript_Accessibility

accessibility, typescript
P
Julien Gilbert•500
@juliengDev
A solution to the FAQ accordion challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


What are you most proud of, and what would you do differently next time?

This project allowed me to deepen my knowledge of creating interactive components with a focus on accessibility. Here are some key takeaways:

  • Implementing ARIA attributes for improved screen reader support
  • Managing keyboard navigation for accordion components
  • Creating smooth transitions for accordion panels
  • Implementing responsive design for various screen sizes
What challenges did you encounter, and how did you overcome them?

One of the main challenges I encountered was implementing a smooth animation effect for the accordion. Initially, I struggled with achieving a natural open/close transition because the hidden class I used blocked the display, making the content appear or disappear instantly without any animation. To overcome this, I had to switch from simply hiding the content with hidden to using CSS transitions, adjusting the height and opacity of the accordion panel, which allowed for a smoother and more visually appealing effect.

Another challenge I faced was positioning the FAQ section correctly in relation to the background image. At first, using relative/absolute positioning caused the layout to break and shift elements in unexpected ways. Instead of relying on absolute positioning, I opted for a negative margin, which allowed me to properly align the FAQ section with the background while maintaining the overall structure and responsiveness of the layout

What specific areas of your project would you like help with?

I would like help with effectively managing the positioning of a complex layout like the one I used in my project. Specifically, I struggled with aligning the FAQ section over the background image while keeping the overall layout responsive and balanced. I had to use a negative margin to achieve the desired effect, but I would appreciate guidance on whether this is the best approach or if there are more efficient ways to handle such positioning challenges without affecting the layout’s integrity.

Code
Couldn’t fetch repository

Please log in to post a comment

Log in with GitHub

Community feedback

  • Yacoub AlDweik•3,110
    @YacoubDweik
    Posted 8 months ago

    Hey Gilbert! What's up?

    Good job man I really like how this looks very close to the original design, although I have some notes:

    • I can only show the paragraph if I clicked on that plus icon, otherwise clicking on the question itself is not working!

    • When I show one questions other visible questions will still there, you have to show only one question at a time.

    Keep it up!!

Join 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
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit all CSS, SCSS and Less files in your repository.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

How does the JavaScript validation report work?

When a solution is submitted, we use eslint to run an automated check on the JavaScript code.

The report picks out common JavaScript issues such as not using semicolons and using var instead of let or const, among others.

The report will audit all JS and JSX files in your repository. We currently do not support Typescript or other frontend frameworks.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub