diff --git a/.Jules/palette.md b/.Jules/palette.md index 6e3411a..7e2de75 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -31,3 +31,6 @@ ## 2026-06-09 - Empty State Feedback **Learning:** When a list or process finishes with zero results, an empty summary container gives no feedback, leaving the user wondering if it actually ran or failed silently. **Action:** Always provide a helpful empty state message explaining why no results might have occurred, using styles consistent with other hints to offer guidance without showing as an error. +## 2025-02-18 - Semantic Form Group Accessibility +**Learning:** Generic `
` containers combined with `role="group"` or `role="radiogroup"` and `aria-labelledby` attributes are often flagged by linters (like Biome) and can be unnecessarily complex. Native semantic HTML `
` and `` elements implicitly provide this accessibility structure without requiring explicit ARIA roles. +**Action:** Default to using `
` and `` when grouping related form controls (like radio buttons or segmented controls). Remember to apply a basic CSS reset (`border: none; padding: 0; margin: 0;`) to `
` and style `` to match `
+
+ Execution Mode +
-
+
Archive every task, ignoring state and matching open Pull Requests
-
- -
+
+ Scope +
-
+
diff --git a/tests/popup.test.js b/tests/popup.test.js index 3f3db03..9523d6c 100644 --- a/tests/popup.test.js +++ b/tests/popup.test.js @@ -437,9 +437,9 @@ describe('popup.html accessibility', () => { it('should use explicit visible labels for radio groups via aria-labelledby', () => { assert.ok(popupHtml.includes('id="execModeLabel"'), 'execModeLabel should exist') - assert.ok(popupHtml.includes('aria-labelledby="execModeLabel"'), 'mode radiogroup should use aria-labelledby') + // // assert.ok(popupHtml.includes('aria-labelledby="execModeLabel"'), 'mode radiogroup should use aria-labelledby') // Removed as fieldset provides native grouping // Removed as fieldset provides native grouping assert.ok(popupHtml.includes('id="scopeLabel"'), 'scopeLabel should exist') - assert.ok(popupHtml.includes('aria-labelledby="scopeLabel"'), 'scope radiogroup should use aria-labelledby') + // // assert.ok(popupHtml.includes('aria-labelledby="scopeLabel"'), 'scope radiogroup should use aria-labelledby') // Removed as fieldset provides native grouping // Removed as fieldset provides native grouping }) })