Summary
Several icon-only buttons in the web-wallet dApp render only a lucide icon with no text and no aria-label, so they expose no accessible name. They are unreachable by getByRole('button', { name: … }) and are not announced to screen readers.
Affected controls
- The dialog X / close button (e.g. Address mode, Send, Change network dialogs).
- The header hamburger / menu button.
Impact
- Accessibility: screen-reader users get no name for these controls.
- Testing: the E2E suite cannot target them by accessible name and currently works around it with structural selectors — the X is the
following-sibling::button of the dialog heading; the hamburger is the last button in <header>. See the "Selector gotchas" note in packages/web-wallet/tests/e2e/e2e.md.
Proposed fix
Give each icon-only button a proper accessible name (e.g. aria-label="Close", aria-label="Menu"). Once done, the E2E workaround and its gotcha note can be removed.
References
Summary
Several icon-only buttons in the web-wallet dApp render only a lucide icon with no text and no
aria-label, so they expose no accessible name. They are unreachable bygetByRole('button', { name: … })and are not announced to screen readers.Affected controls
Impact
following-sibling::buttonof the dialog heading; the hamburger is the last button in<header>. See the "Selector gotchas" note inpackages/web-wallet/tests/e2e/e2e.md.Proposed fix
Give each icon-only button a proper accessible name (e.g.
aria-label="Close",aria-label="Menu"). Once done, the E2E workaround and its gotcha note can be removed.References