diff --git a/CODE-AUDIT.md b/CODE-AUDIT.md
index 893bfab..23aaab6 100644
--- a/CODE-AUDIT.md
+++ b/CODE-AUDIT.md
@@ -952,9 +952,16 @@ are an undefined spacing/radius/type scale and a drift between Fluent components
### Hover, focus, disabled, keyboard & accessibility
-- [ ] **UI27 — Command palette uses JS hover, not CSS.** Items highlight via `onMouseEnter` setting
+- [x] **UI27 — Command palette uses JS hover, not CSS.** Items highlight via `onMouseEnter` setting
`itemActive` (no `:hover`), unlike every other list, and expose no `aria-selected`/active-descendant,
so the highlight is invisible to screen readers. **Standard:** CSS `:hover` + listbox/option semantics.
+ *Fixed in [CommandPalette.tsx](src/renderer/src/components/CommandPalette.tsx): the input is now a
+ `role="combobox"` with `aria-controls`/`aria-activedescendant`/`aria-autocomplete="list"`, the list is a
+ `role="listbox"`, and each row is a `role="option"` with `aria-selected` — so the active row is announced
+ to Narrator via active-descendant (the standard combobox pattern; focus stays on the input, so the rows
+ became non-focusable `div`s rather than `button`s). `onMouseEnter` is kept deliberately: it unifies the
+ pointer and keyboard highlight onto one `sel` state, which — now that `aria-activedescendant` tracks it —
+ is more correct than a pure CSS `:hover` (which wouldn't move the announced selection).*
- [x] **UI28 — Command palette input has no focus ring.** The search `` sets `outline: 'none'`
with no replacement. **Standard:** a visible focus ring (Fluent stroke token). *(a11y)*
- [x] **UI29 — Fragmented focus treatment.** Fluent ring (Fluent controls) vs custom border (Select)
@@ -968,9 +975,16 @@ are an undefined spacing/radius/type scale and a drift between Fluent components
so that control can't show a disabled state while Fluent controls can. **Standard:** add `disabled` + styling.
- [ ] **UI32 — Native-control dark mode is uneven.** The DownloadBar `datetime-local` sets
`colorScheme: 'light dark'` explicitly; the `Select` relies on the root `colorScheme`. **Standard:** set `colorScheme` consistently on both.
-- [ ] **UI33 — No semantic headings.** Titles render as `Subtitle2`/`Title2` (styled spans), so there's
+- [x] **UI33 — No semantic headings.** Titles render as `Subtitle2`/`Title2` (styled spans), so there's
no h1–h6 hierarchy for screen-reader heading navigation (landmarks `