fix(a11y): P3 — drop focus:outline-none on inputs; restore global :focus-visible
Phase 10a a11y audit (2026-04-29) flagged seven inputs across the app that strip the global 2px :focus-visible outline (defined in app.css:251) without providing a comparable replacement. Net effect: keyboard users see at most a 1px border-colour shift on focus, sometimes nothing. The fix removes the focus:outline-none override so the global rule applies. Affected inputs: - FilesPage: file-transcript textarea (F2). - TasksPage: search input, quick-add input, inline list-edit, new-list input (T1, T2, T3, plus the new-list rename input). - HistoryPage: top search, inline title rename, tag-add (H1). - ImplementationRulesEditor: trigger/surface/task selects + speak-line input (S7). - TaskSidebar, WipTaskList: quick-add inputs (S8). The 1px focus:border-accent on inputs that had it is retained as a secondary cue; the global 2px ring is now the primary indicator and matches button focus across the app. Resolves: F2, T1, T2, T3, H1, S7, S8. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -377,7 +377,7 @@
|
||||
<Search size={14} class="text-text-tertiary flex-shrink-0" aria-hidden="true" />
|
||||
<input
|
||||
type="text"
|
||||
class="flex-1 bg-transparent text-[12px] text-text placeholder:text-text-tertiary focus:outline-none"
|
||||
class="flex-1 bg-transparent text-[12px] text-text placeholder:text-text-tertiary"
|
||||
placeholder="Search tasks..."
|
||||
bind:value={searchQuery}
|
||||
data-no-transition
|
||||
@@ -395,7 +395,7 @@
|
||||
<Plus size={16} class="text-text-tertiary flex-shrink-0" aria-hidden="true" />
|
||||
<input
|
||||
type="text"
|
||||
class="flex-1 bg-transparent text-[13px] text-text placeholder:text-text-tertiary focus:outline-none"
|
||||
class="flex-1 bg-transparent text-[13px] text-text placeholder:text-text-tertiary"
|
||||
placeholder="Add a task to {activeListName}{activeBucket !== 'all' ? ` (${activeBucket})` : ''}... (Enter to save)"
|
||||
bind:value={quickInput}
|
||||
onkeydown={handleQuickAdd}
|
||||
@@ -485,7 +485,7 @@
|
||||
<input
|
||||
bind:this={editingInputEl}
|
||||
type="text"
|
||||
class="w-full bg-bg-input border border-accent rounded px-2 py-1 text-[10px] text-text focus:outline-none"
|
||||
class="w-full bg-bg-input border border-accent rounded px-2 py-1 text-[10px] text-text"
|
||||
bind:value={editingName}
|
||||
onkeydown={(e) => { if (e.key === "Enter") finishRenaming(); if (e.key === "Escape") { editingListId = null; } }}
|
||||
onblur={finishRenaming}
|
||||
@@ -545,7 +545,7 @@
|
||||
bind:this={newListInputEl}
|
||||
type="text"
|
||||
class="w-full bg-bg-input border border-border rounded px-2 py-1 text-[10px] text-text
|
||||
placeholder:text-text-tertiary focus:outline-none focus:border-accent"
|
||||
placeholder:text-text-tertiary focus:border-accent"
|
||||
placeholder="List name..."
|
||||
bind:value={newListName}
|
||||
onkeydown={handleCreateList}
|
||||
|
||||
Reference in New Issue
Block a user