Accessibility overhaul

This commit is contained in:
Jack Kingsman
2026-03-02 20:34:06 -08:00
parent 7d39e726b4
commit fb279ccf1a
35 changed files with 348 additions and 107 deletions
@@ -16,7 +16,7 @@ export function AclPane({
const permColor: Record<number, string> = {
0: 'bg-muted text-muted-foreground',
1: 'bg-blue-500/10 text-blue-500',
2: 'bg-green-500/10 text-green-500',
2: 'bg-green-400/10 text-green-400',
3: 'bg-amber-500/10 text-amber-500',
};
@@ -40,6 +40,8 @@ export function ConsolePane({
<div
ref={outputRef}
className="h-48 overflow-y-auto p-3 font-mono text-xs bg-black/50 text-green-400 space-y-1"
aria-live="polite"
aria-relevant="additions"
>
{history.length === 0 && (
<p className="text-muted-foreground italic">Type a CLI command below...</p>
@@ -65,6 +67,7 @@ export function ConsolePane({
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="CLI command..."
aria-label="Console command"
disabled={loading}
className="flex-1 font-mono text-sm"
/>
@@ -101,7 +101,7 @@ export function NeighborsPane({
const dist = n.distance;
const snrStr = n.snr >= 0 ? `+${n.snr.toFixed(1)}` : n.snr.toFixed(1);
const snrColor =
n.snr >= 6 ? 'text-green-500' : n.snr >= 0 ? 'text-yellow-500' : 'text-red-500';
n.snr >= 6 ? 'text-green-400' : n.snr >= 0 ? 'text-yellow-500' : 'text-red-400';
return (
<tr key={i} className="border-t border-border/50">
<td className="py-1">{n.name || n.pubkey_prefix}</td>
@@ -66,7 +66,7 @@ export function RadioSettingsPane({
<span
className={cn(
'ml-2 text-xs',
clockDrift.isLarge ? 'text-red-500' : 'text-muted-foreground'
clockDrift.isLarge ? 'text-red-400' : 'text-muted-foreground'
)}
>
(drift: {clockDrift.text})
@@ -109,12 +109,13 @@ export function RepeaterPane({
onClick={onRefresh}
disabled={disabled || state.loading}
className={cn(
'p-1 rounded transition-colors disabled:opacity-50',
'p-1 rounded transition-colors disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
disabled || state.loading
? 'text-muted-foreground'
: 'text-green-500 hover:bg-accent hover:text-green-400'
)}
title="Refresh"
aria-label={`Refresh ${title}`}
>
<RefreshIcon
className={cn(