Fix comparison table and status section — mobile readability and timeout handling #18

Open
opened 2026-05-19 21:43:22 +00:00 by NW · 0 comments
Owner

Bug Description

The comparison table is hard to read on mobile and has potentially misleading content after removing fake data. The status section shows "Loading..." forever when the API is unreachable because the fetch timeout does not properly abort.

Root Cause Analysis

Comparison Table

  • After removing fake/placeholder content, table may have incomplete or misleading comparisons
  • No table-responsive wrapper or it does not work properly on mobile
  • Table cells overflow on small screens
  • Inconsistent column widths make comparison difficult

Status Section

  • status.js uses setTimeout for timeout but does not call AbortController.abort()
  • When API is unreachable, fetch hangs → shows "Loading..." indefinitely
  • No fallback UI or error message for offline/unreachable API
  • No retry mechanism or graceful degradation

Acceptance Criteria

  • Comparison table scrolls horizontally on mobile (table-responsive)
  • All table columns have consistent, readable widths
  • Table content is accurate (no misleading comparisons after content cleanup)
  • Status section shows meaningful fallback message when API is down
  • status.js properly uses AbortController to cancel fetch on timeout
  • Timeout displays error state (not infinite "Loading...")
  • Both components work correctly on mobile (375px) and desktop

Files Likely Affected

  • js/status.jsAbortController, timeout handling, fallback UI
  • index.html — comparison table markup, table-responsive wrapper
  • css/style.css — table responsive styles, .table-responsive overrides

How to Verify

  1. Load landing page on mobile viewport (375px width)
  2. Comparison table should scroll horizontally without breaking layout
  3. Disconnect network or block API URL
  4. Status section should show "Currently unavailable" or similar, not "Loading..." forever
  5. Wait > 10 seconds on normal connection — status should load and display results
## Bug Description The comparison table is hard to read on mobile and has potentially misleading content after removing fake data. The status section shows "Loading..." forever when the API is unreachable because the fetch timeout does not properly abort. ## Root Cause Analysis ### Comparison Table - After removing fake/placeholder content, table may have incomplete or misleading comparisons - No `table-responsive` wrapper or it does not work properly on mobile - Table cells overflow on small screens - Inconsistent column widths make comparison difficult ### Status Section - `status.js` uses `setTimeout` for timeout but does not call `AbortController.abort()` - When API is unreachable, `fetch` hangs → shows "Loading..." indefinitely - No fallback UI or error message for offline/unreachable API - No retry mechanism or graceful degradation ## Acceptance Criteria - [ ] Comparison table scrolls horizontally on mobile (`table-responsive`) - [ ] All table columns have consistent, readable widths - [ ] Table content is accurate (no misleading comparisons after content cleanup) - [ ] Status section shows meaningful fallback message when API is down - [ ] `status.js` properly uses `AbortController` to cancel fetch on timeout - [ ] Timeout displays error state (not infinite "Loading...") - [ ] Both components work correctly on mobile (375px) and desktop ## Files Likely Affected - `js/status.js` — `AbortController`, timeout handling, fallback UI - `index.html` — comparison table markup, `table-responsive` wrapper - `css/style.css` — table responsive styles, `.table-responsive` overrides ## How to Verify 1. Load landing page on mobile viewport (375px width) 2. Comparison table should scroll horizontally without breaking layout 3. Disconnect network or block API URL 4. Status section should show "Currently unavailable" or similar, not "Loading..." forever 5. Wait > 10 seconds on normal connection — status should load and display results
NW added this to the Landing Bug Fixes 2025-05 milestone 2026-05-19 21:43:22 +00:00
NW added the status::newpriority::hightype::bugworkflow::landing labels 2026-05-19 21:43:22 +00:00
Sign in to join this conversation.