Problem
At main 332c66f, the popup switch has an accessible name, but no aria-describedby connection to its existing explanatory paragraph. The footer status is also a plain paragraph: asynchronous error and mode-warning text changes have no live-region semantics.
These are concrete markup gaps; screen-reader behavior has not yet been manually tested.
Starting points
- popup/popup.html:
#decoy-mode-toggle, #decoy-mode-description, and #status-line
popup/popup.js: renderReport, loadReport, and handleDecoyModeChange
Acceptance criteria
- Associate the switch with the existing explanatory text using accessible description markup.
- Make relevant status changes announce politely without moving keyboard focus.
- Preserve the switch's accessible name, checked state, keyboard operation, and current visual layout.
- Avoid placing all statistics or the entire popup in a live region.
- Verify with keyboard and a screen reader: toggle description, successful mode change warning, and a simulated update failure.
- Run
npm run check; document the manual accessibility verification in the PR.
Scope and overlap
This is a small accessibility change using existing text. #19 owns global-versus-per-site Decoy Mode behavior and wording; do not redesign its scope here. No extension permissions or rule changes are needed.
New contributor notes
This is intended as a small first contribution. Start with the files above and open a focused PR referencing this issue. No assignee has been reserved.
Problem
At main
332c66f, the popup switch has an accessible name, but noaria-describedbyconnection to its existing explanatory paragraph. The footer status is also a plain paragraph: asynchronous error and mode-warning text changes have no live-region semantics.These are concrete markup gaps; screen-reader behavior has not yet been manually tested.
Starting points
#decoy-mode-toggle,#decoy-mode-description, and#status-linepopup/popup.js:renderReport,loadReport, andhandleDecoyModeChangeAcceptance criteria
npm run check; document the manual accessibility verification in the PR.Scope and overlap
This is a small accessibility change using existing text. #19 owns global-versus-per-site Decoy Mode behavior and wording; do not redesign its scope here. No extension permissions or rule changes are needed.
New contributor notes
This is intended as a small first contribution. Start with the files above and open a focused PR referencing this issue. No assignee has been reserved.