Hash chips are the CRC / MD5 / SHA-1 values shown on the ROM Metadata tab, the Files tab and the platform Firmware tab. Each one is a button that toggles: clicking it copies the hash, or, where the browser cannot copy (any RomM served over plain HTTP, which is the default for a bare docker compose up), expands the chip to reveal the full value so it can be selected by hand.
Sighted users get a clear cue for that behaviour: the trailing icon switches between a copy icon and an eye / eye-off icon. Screen reader users get nothing. The button carries no aria-expanded, so there is no way to tell that it is a toggle at all, or which state it is currently in, beyond noticing that the announced text got longer after activating it.
Suggested fix
- Add
aria-expanded to the button, bound to the revealed state.
- Give the button an accessible name that describes the action, rather than leaving it to be derived from the abbreviated hash text.
Where
frontend/src/v2/components/shared/HashChip.vue
Context
The reveal behaviour was added in #4082 / PR #4083, where the missing ARIA state was called out and deliberately left for a follow-up.
Hash chips are the CRC / MD5 / SHA-1 values shown on the ROM Metadata tab, the Files tab and the platform Firmware tab. Each one is a button that toggles: clicking it copies the hash, or, where the browser cannot copy (any RomM served over plain HTTP, which is the default for a bare
docker compose up), expands the chip to reveal the full value so it can be selected by hand.Sighted users get a clear cue for that behaviour: the trailing icon switches between a copy icon and an eye / eye-off icon. Screen reader users get nothing. The button carries no
aria-expanded, so there is no way to tell that it is a toggle at all, or which state it is currently in, beyond noticing that the announced text got longer after activating it.Suggested fix
aria-expandedto the button, bound to the revealed state.Where
frontend/src/v2/components/shared/HashChip.vueContext
The reveal behaviour was added in #4082 / PR #4083, where the missing ARIA state was called out and deliberately left for a follow-up.