d131ee67d59c982bf43d07a018eaa0fe1e63e82e
- L118: decouple URL-field focus. The DownloadBar registers a focuser (its own
input ref) in the nav store; App calls useNav.getState().focusUrlField() on
launch / "New download" instead of document.getElementById('aerofetch-url').
The hardcoded id is removed — App no longer reaches into DownloadBar's markup.
- L155: the accent swatches are now a real role="radiogroup" with aria-checked
role="radio" swatches, roving tabindex, ←/→/↑/↓/Home/End arrow-key navigation,
and the shared focus ring — matching the app's SegmentedControl radio pattern.
Redundant "(selected)" aria-label text dropped (aria-checked conveys it).
- UX21: keyboard-shortcut discoverability — an Onboarding "Press Ctrl+K anytime"
tip, and the command palette's Settings action surfaces its "Ctrl ," shortcut.
- UX22 / L67: onboarding is revisitable — a "Show welcome tips again" button in
Settings → About re-opens the welcome screen.
Verified & documented (no code needed): UX17 (Fetch/Paste already have aria-label
+ focus-reachable Hint tooltips — a11y met; a permanent visible label is a compact-
layout choice), UI24 (context menus "none by design" — row actions are all visible
inline buttons + keyboard, and Fluent's Menu is portal-based, which the app avoids
for the dev-GPU flicker reason).
Verified: typecheck (node+web) + 279 tests + eslint + production build green;
touched files prettier-clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
Releases
9
AeroFetch v0.7.3
Latest
Languages
TypeScript
99.5%
JavaScript
0.3%
CSS
0.1%