PR #178 added an additive role="group" opt-in to the shared src/components/ui/popover.tsx and applied it to the Confirmed-by filter popover — whose children are checkboxes, not menu items, so the default role="menu" + menuitem roving was wrong and focus never entered the popover on open. The opt-in (role="group") sets the container role to group, skips menuitem roving, and focuses the first focusable control on open.
Follow-up: the pre-existing Quality and Sort /explore popovers have the same checkbox-in-role="menu" pattern but were out of scope for the 3-day-diff pass, so they were left unchanged.
Recommendation: Apply the existing role="group" opt-in to the Quality/Sort popovers and verify focus-on-open + keyboard operability. Low-risk — the mechanism already exists and the default menu path is unchanged for true menus.
Alternatives:
- Leave as-is (functional; the defect is ARIA semantics + focus-on-open).
- If any popover is genuinely single-select, keep
role="menu" and convert its items to menuitemradio/menuitemcheckbox instead — pick the model that matches each popover.
Refs: PR #178, finding accessibility-2; the opt-in lives in ui/popover.tsx.
PR #178 added an additive
role="group"opt-in to the sharedsrc/components/ui/popover.tsxand applied it to the Confirmed-by filter popover — whose children are checkboxes, not menu items, so the defaultrole="menu"+ menuitem roving was wrong and focus never entered the popover on open. The opt-in (role="group") sets the container role togroup, skips menuitem roving, and focuses the first focusable control on open.Follow-up: the pre-existing Quality and Sort
/explorepopovers have the same checkbox-in-role="menu"pattern but were out of scope for the 3-day-diff pass, so they were left unchanged.Recommendation: Apply the existing
role="group"opt-in to the Quality/Sort popovers and verify focus-on-open + keyboard operability. Low-risk — the mechanism already exists and the defaultmenupath is unchanged for true menus.Alternatives:
role="menu"and convert its items tomenuitemradio/menuitemcheckboxinstead — pick the model that matches each popover.Refs: PR #178, finding
accessibility-2; the opt-in lives inui/popover.tsx.