10up / component-library

A library of barebones front-end components built with WordPress and accessibility in mind.
https://baseline.10up.com/
MIT License
58 stars 11 forks source link

Navigation Component: Duplicate IDs when using multiple instances #141

Open jacobdubailcadmv opened 1 year ago

jacobdubailcadmv commented 1 year ago

Describe the bug When implementing multiple instances of the Navigation component on the same page, duplicate IDs will be present in the DOM, leading to validation/a11y errors. https://github.com/10up/component-library/blob/develop/packages/navigation/src/navigation.js#L205 uses the loop's index to set the ID.

To Reproduce Steps to reproduce the behavior:

  1. Instantiate multiple navigation components on the same page
  2. Inspect the submenu IDs, e.g. "tenUp-submenu-0"

Expected behavior The unique IDs should be generated using the uuid package or the window.crypto.randomUUID() method, or the Navigation class should allow passing in an ID prefix.

Additional context My use case: I'm using the Navigation component for the main/primary navigation, as well as for navigation blocks in the editor.