Description
There's an accessibility inconsistency in how Plyr handles aria-label attributes across its control buttons. The play/pause button correctly updates its aria-label based on state (switching between "Play" and "Pause"), but the mute button and settings button lack aria-label attributes entirely. No problem for OSX VoiceOver. But this is a problem for NVDA on Windows. NVDA for some reason has problems fetching the accessible names from these buttons span elements.
Current Behavior
- Play button: ✅ Has dynamic
aria-label that changes based on state, NVDA announces the accessible name.
- Mute button: ❌ No
aria-label attribute, NVDA can't find the accessible name.
- Settings button: ❌ No
aria-label attribute, NVDA can't find the accessible name.
Expected Behavior
All interactive control buttons should have appropriate aria-label attribute so the names are read out loud by alle screenreaders:
- Describe the button's function
- Update dynamically based on the button's state (where applicable)
For example:
- Mute button should toggle between "Mute" and "Unmute"
- Settings button should have "Settings" (or "Open settings"/"Close settings" if it has a state)
Proposed Solution
Implement the same dynamic aria-label logic that's currently used for the play/pause button to the mute and settings buttons. This would ensure consistent accessibility across all controls.
Description
There's an accessibility inconsistency in how Plyr handles
aria-labelattributes across its control buttons. The play/pause button correctly updates itsaria-labelbased on state (switching between "Play" and "Pause"), but the mute button and settings button lackaria-labelattributes entirely. No problem for OSX VoiceOver. But this is a problem for NVDA on Windows. NVDA for some reason has problems fetching the accessible names from these buttonsspanelements.Current Behavior
aria-labelthat changes based on state, NVDA announces the accessible name.aria-labelattribute, NVDA can't find the accessible name.aria-labelattribute, NVDA can't find the accessible name.Expected Behavior
All interactive control buttons should have appropriate
aria-labelattribute so the names are read out loud by alle screenreaders:For example:
Proposed Solution
Implement the same dynamic
aria-labellogic that's currently used for the play/pause button to the mute and settings buttons. This would ensure consistent accessibility across all controls.