From 8ea7bf3b84336c4c201aa7048816891e0468fd54 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 30 Mar 2026 06:57:49 +0000 Subject: [PATCH] [docs](trx-rs): add settings menu UX analysis and improvement plan Comprehensive analysis of the HTTP frontend settings tab covering information architecture, interaction design, visual layout, and accessibility. Prioritized improvement plan in three phases. https://claude.ai/code/session_013i8aoQinGF97afSe5qsJrn Signed-off-by: Claude --- docs/Settings-Menu-UX-Analysis.md | 163 ++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 docs/Settings-Menu-UX-Analysis.md diff --git a/docs/Settings-Menu-UX-Analysis.md b/docs/Settings-Menu-UX-Analysis.md new file mode 100644 index 0000000..6f76009 --- /dev/null +++ b/docs/Settings-Menu-UX-Analysis.md @@ -0,0 +1,163 @@ +# Settings Menu — UI/UX Analysis & Improvement Plan + +*Authored: 2026-03-30* + +## 1. Current Structure + +The Settings tab (`#tab-settings`) contains four sub-tabs: + +| Sub-tab | Purpose | Complexity | +|---|---|---| +| **Scheduler** | Grayline / Time Span / Satellite scheduling | High — nested modes, forms, timeline | +| **Background Decode** | Hidden background decoder channels | Medium — toggle + bookmark checklist | +| **Bandplan** | IARU region overlay on spectrum | Low — dropdown + checkbox | +| **History** | Clear server-side decode history | Low — 10 clear buttons | + +--- + +## 2. Identified Issues + +### 2.1 Information Architecture + +| # | Issue | Severity | +|---|---|---| +| IA-1 | **"Settings" is a catch-all bucket.** Scheduler and Background Decode are operational features, not user preferences. Bandplan and History are true settings/maintenance. Mixing them under one tab creates cognitive overhead. | Medium | +| IA-2 | **Scheduler sub-tab is overloaded.** It packs three conceptually distinct features (Grayline, Time Span, Satellite) into one scrollable panel via conditional `display:none` sections. Users must scroll past irrelevant sections. | Medium | +| IA-3 | **History clearing is buried.** Users wanting to clear FT8 decode history must navigate to Settings → History — an unintuitive path. This action is more naturally accessible from the Digital Modes tab itself. | Low | +| IA-4 | **No search or categorization.** With 4 sub-tabs today, it's manageable, but the flat sub-tab bar won't scale if more settings (e.g., audio, display theme, reporting/PSKReporter, notifications) are added. | Low | + +### 2.2 Interaction Design + +| # | Issue | Severity | +|---|---|---| +| IX-1 | **Save button visibility is inconsistent.** Save/Reset buttons use `style="display:none"` and are shown dynamically, but there is no dirty-state indicator. Users can change fields without realizing they haven't saved. | High | +| IX-2 | **No confirmation on destructive actions.** The 10 history-clear buttons and "Reset to Disabled" (scheduler) fire immediately on click. No confirmation dialog protects against accidental data loss. | High | +| IX-3 | **Entry table details collapsed by default.** The Time Span entry table is inside a `
` element — users must expand it to see, edit, or delete entries. This adds an unnecessary click when entries already exist. | Medium | +| IX-4 | **Satellite form uses a modal overlay; Time Span form is inline.** Inconsistent form presentation within the same sub-tab. Both should use the same pattern. | Medium | +| IX-5 | **Toast notification positioning.** The `.sch-toast` uses `position: fixed; bottom: 1.5rem` which can overlap with the main tab bar or mobile navigation. It also disappears without user control. | Low | +| IX-6 | **Bookmark filter in Background Decode has no "select all / deselect all" shortcut.** With many bookmarks, toggling them one by one is tedious. | Medium | + +### 2.3 Visual & Layout + +| # | Issue | Severity | +|---|---|---| +| VL-1 | **Scheduler has no visual state summary.** The "No activity yet." card doesn't show whether the scheduler is enabled or what mode it's in at a glance. Users must inspect the mode dropdown. | Medium | +| VL-2 | **History clear buttons are uniform.** All 10 buttons look identical (`sch-write sch-reset-btn`). No indication of which decoders have data to clear. Buttons for empty histories are noise. | Low | +| VL-3 | **Mobile responsiveness is partial.** The `@media (max-width: 600px)` rules handle `.sch-row` and `.bgd-*` layout, but the Time Span table (`.sch-ts-table` with 8 columns) overflows on narrow screens. | Medium | +| VL-4 | **Sub-tab bar can overflow.** It uses `overflow-x: auto` but gives no visual scroll indicator. On small screens, the "History" tab can be hidden off-screen with no affordance. | Low | + +### 2.4 Accessibility + +| # | Issue | Severity | +|---|---|---| +| A-1 | **Missing `aria-label` on several controls.** The scheduler mode select has one, but the grayline lat/lon inputs, interleave fields, and satellite fields lack accessible names beyond their visible label text (which is acceptable for `