Skip to content

ux polish batch: truncate titles, th sort a11y, mobile drawer, nav icons, dead code #275

Description

@ajianaz

Summary

A batch of small, verified usability/a11y fixes that are each tiny but add up to most of the remaining friction.

Items (all verified 2026-09-20)

  1. Truncate without title — content clipped with no way to read it in place:
    • dashboard/+page.svelte:319 (post caption), :345 (schedule caption), media/+page.svelte:363 (filename)
  2. Sortable <th> not keyboard accessible — lib/components/DataTable.svelte:124-132: <th onclick> without tabindex/onkeydown/aria-sort. (Rows are done right: role=button + tabindex + Enter/Space + inner-control guard.)
  3. Mobile sidebar drawer: no Escape-to-close, no body scroll lock — admin/+layout.svelte (hamburger/backdrop exist; MediaLightbox already implements both correctly — copy that pattern).
  4. Nav icon duplication — Comments and Mentions both use MessageSquare (+layout.svelte:91-92) → switch Mentions to AtSign.
  5. Emoji in chrome — 🕒 in sidebar footer (+layout.svelte:167) is the only emoji in an otherwise Lucide-icon UI → <Clock>.
  6. Raw backend error strings in toasts — pattern toast(e.message || 'Fallback', 'error') surfaces raw API errors; normalize to human copy (+ error code) with the detail kept for console.
  7. Dead code — account switcher state/handler/CSS never rendered (+layout.svelte:28-43, 194-214, localStorage 'titen.activeAccount' unused elsewhere); StatSkeleton unused label prop + invalid h-2.4 class (h-2.4 is not a Tailwind step → dropped, no height).

Fix

See items; each is ≤ 10 lines.

Acceptance criteria

  • All clipped text has title={...}.
  • Column sorting works via keyboard; aria-sort reflects state.
  • Escape closes mobile drawer; body scroll locked while open.
  • Mentions nav uses AtSign; no emoji in chrome.
  • Switcher dead code removed; StatSkeleton fixed.
  • Build + svelte-check clean.

Source: Titen UX audit 2026-09-20 (findings M4, M5, M6, L1-L4).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions