🎨 Palette: Enhance status bar keyboard accessibility#242
🎨 Palette: Enhance status bar keyboard accessibility#242
Conversation
Added `role="button"`, `tabindex="0"`, `aria-label`, and keyboard event handlers (`enter`, `space`) to the interactive status bar items in the dashboard. This ensures that keyboard users and screen readers can interact with the status bar to navigate to the System Health/Server tab. - Added accessibility attributes to System Health, Compute Resources, and Data Ingestion status items. - Added `aria-label` for screen reader context. - Added keyboard event listeners for `Enter` and `Space` keys to mirror click behavior. Co-authored-by: legato3 <33081243+legato3@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
📝 WalkthroughWalkthroughStatus bar items in the template were enhanced with ARIA attributes (role, aria-label) and keyboard event handlers to support keyboard navigation. The click behavior and visual layout remain unchanged; keyboard support now mirrors existing click functionality. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Improves keyboard/screen-reader accessibility for the sticky dashboard status bar items in frontend/templates/index.html by making the interactive “status-bar-item” divs behave more like buttons.
Changes:
- Added
role="button"andtabindex="0"to make status bar items focusable and semantically interactive. - Added
@keydown.enterand@keydown.space.preventhandlers to allow keyboard activation. - Added
aria-labelattributes for additional context.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <!-- Neural Link Health --> | ||
| <div class="status-bar-item" @click="activeTab = 'server'" style="cursor: pointer;"> | ||
| <div class="status-bar-item" @click="activeTab = 'server'" style="cursor: pointer;" | ||
| role="button" tabindex="0" aria-label="View System Health" |
There was a problem hiding this comment.
aria-label overrides the element’s visible text for the accessible name. With role="button", this will cause screen readers to announce only “View System Health” and not the current health value shown inside (e.g., the overallHealth.shortExplanation text). Consider removing aria-label so the visible label/value form the name, or use aria-labelledby/aria-describedby (or a bound :aria-label) that includes the current status value.
| role="button" tabindex="0" aria-label="View System Health" | |
| role="button" tabindex="0" |
| <!-- Compute Resources --> | ||
| <div class="status-bar-item" @click="activeTab = 'server'" style="cursor: pointer;"> | ||
| <div class="status-bar-item" @click="activeTab = 'server'" style="cursor: pointer;" | ||
| role="button" tabindex="0" aria-label="View Compute Resources" |
There was a problem hiding this comment.
aria-label overrides the element’s visible text for the accessible name. With role="button", this will cause screen readers to announce only “View Compute Resources” and not the CPU/MEM values displayed inside. Consider removing aria-label so the visible label/value form the name, or use aria-labelledby/aria-describedby (or a bound :aria-label) that includes the current CPU/MEM values.
| role="button" tabindex="0" aria-label="View Compute Resources" | |
| role="button" tabindex="0" | |
| :aria-label="firewall.loading | |
| ? 'View compute resources. Loading metrics.' | |
| : `View compute resources. CPU ${toFiniteNumber(firewall.cpu_percent, 0)} percent. Memory ${toFiniteNumber(firewall.mem_percent, 0)} percent.`" |
| <!-- Data Ingestion --> | ||
| <div class="status-bar-item" @click="activeTab = 'server'" style="cursor: pointer;"> | ||
| <div class="status-bar-item" @click="activeTab = 'server'" style="cursor: pointer;" | ||
| role="button" tabindex="0" aria-label="View Data Ingestion" |
There was a problem hiding this comment.
aria-label overrides the element’s visible text for the accessible name. With role="button", this will cause screen readers to announce only “View Data Ingestion” and not the ingestion indicators represented by the contents. Consider removing aria-label so the visible label forms the name, or use aria-describedby to provide a concise textual summary of the current ingestion states.
| role="button" tabindex="0" aria-label="View Data Ingestion" | |
| role="button" tabindex="0" |
💡 What: Improved the accessibility of the interactive status bar items in the main dashboard (
index.html).🎯 Why: The status bar items (System Health, Compute Resources, Data Ingestion) were implemented as clickable
divs without appropriate ARIA roles or keyboard support, making them inaccessible to keyboard and screen reader users.📸 Verification: Verified using Playwright script and manual inspection of the generated screenshot to ensure no visual regression while adding functionality.
♿ Accessibility:
- Added
role="button"to indicate interactivity.- Added
tabindex="0"to make items focusable via Tab.- Added
aria-labels ("View System Health", etc.) for context.- Added
@keydown.enterand@keydown.space.preventfor keyboard activation.PR created automatically by Jules for task 8305286650711987098 started by @legato3
Summary by CodeRabbit