fix(dashboard): a11y contrast/ARIA fixes, dismissal persistence, servers skeleton - #360
Open
DiogoDuart3 wants to merge 5 commits into
Open
fix(dashboard): a11y contrast/ARIA fixes, dismissal persistence, servers skeleton#360DiogoDuart3 wants to merge 5 commits into
DiogoDuart3 wants to merge 5 commits into
Conversation
The dismissal flag was keyed by serverId alone, so the modal would never come back for a newly added domain on an already-welcomed server (contradicts the intended "show once per domain" behavior), and had no guard against a transient empty domain from status still loading registering a bogus key. Now keyed by serverId+domain, and the effect/dismiss handler both require a non-empty domain before touching localStorage.
Critical advisories are deliberately never dropped by the shared resolveUpdateState (packages/core) - "shown once per launch by design," which fits a desktop process. The dashboard web app has no such launch boundary, so the "Update to 0.4.8" banner was coming back on every client-side navigation after being dismissed. Added a dashboard-only persistence layer, kept separate from the existing non-critical dismissal list and keyed to id+version (not just id), so a dismissal doesn't accidentally suppress a later release's critical advisory. packages/core's resolver and the desktop app's behavior are unchanged.
Deployments and Projects already show a row skeleton while loading; Servers was the one holdout with a lone centered spinner. Matches the real row's shape (avatar, name/host, one meta chip, status) so the page doesn't jump when data lands, consistent with the other two lists.
…ects Lighthouse audit fixes: - Raise --th-text-secondary/muted alpha (light/dark themes) to clear 4.5:1 against page/card backgrounds; dim theme already passed. - Eliminate text-muted-foreground/70 double-dim usage repo-wide in favor of the (now-passing) base token. - Deepen --st-warning-fg on the light theme (amber-600 -> amber-800) so text-warning clears 4.5:1 on its tinted banner background; dark and dim already passed. - Restructure the shared admin DataTable (aliases/mailboxes/domains lists) with role="table"/role="rowgroup" wrappers around the existing row/columnheader/cell roles, fixing aria-required-parent and aria-required-children violations. - Add aria-label to the unlabeled domain-picker <select> duplicated across the aliases, mailboxes, and dns admin tabs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…ntrast D5: the actions-column cells in the shared admin DataTable (aliases, mailboxes, domains) had no role - only the data columns from the columns.map loop got role="cell"/"columnheader". A role="row" with a child missing an allowed role fails aria-required-children. Added role="columnheader" to the header row's action-column spacer and role="cell" to the body row's action-column wrapper. D6: the sidebar's "MAIN"/"SETTINGS"/"INFRASTRUCTURE"/"Account" section labels used text-muted-foreground/60 - a double-dim on top of the already-tuned base token, same class of bug as the repo-wide /70 sweep from an earlier pass but a different opacity fraction that sweep didn't target. Removed the /60 modifier on all four labels. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Member
|
amazing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A batch of small, independent a11y and UX fixes to the dashboard, verified live via a headless screenshot + DOM-role pass at 390px before/after each change.
Accessibility (Lighthouse-driven)
--th-text-secondary/--th-text-mutedalpha (light/dark themes) to clear 4.5:1 against page/card backgrounds; the dim theme already passed.text-muted-foreground/70double-dimming repo-wide in favor of the (now-passing) base token.--st-warning-fgon the light theme (amber-600 -> amber-800) sotext-warningclears 4.5:1 on its tinted banner background; dark and dim already passed.DataTable(aliases/mailboxes/domains lists) hadrole="row"/role="cell"/role="columnheader"on the data columns but the actions-column cells had no role at all - failsaria-required-children. Wrapped inrole="table"/role="rowgroup"and added the missing roles on the actions column.aria-labelto the unlabeled domain-picker<select>duplicated across the aliases, mailboxes, and dns admin tabs.MAIN/SETTINGS/INFRASTRUCTURE/Account) used a/60double-dim on top of the already-tuned base token - same class of bug as the/70sweep above, different fraction.UX polish
Note on CI
Recent merged PRs against
main(#322, #327) showTypecheck: SUCCESS/Test: FAILUREon their PR-context runs. Flagging in case it reproduces here too - doesn't look related to this change.