# PR #32605 evidence matrix (scoped by the lead)

Derived from proof-audit pass 1 (full matrix: https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/df9c27ba80c4fb05/proof-matrix.md),
scoped to what the diff changes. The diff removes `tabIndex={-1}` from `CommandPaletteSubmitButton`; the only behaviour that
changes is whether keyboard Tab from the palette input lands on an ENABLED submit button. Disabled buttons are excluded from
the Tab order by the browser in both versions; pending/failure/loading states, mouse behaviour and the folder-path Tab completion
render identically before and after. Those rows are unaffected; one control row (E) proves completion is unchanged.

Surface: web dev server (Chromium), before = merge-base 0a9abddaee, after = head 9197794bca. Fresh databases (`T3CODE_DEV_SEED=0`), same driver.

| Row | Fixture | Interaction (scripted, identical both sides) | Expected before | Expected after | Capture | Affected |
| --- | --- | --- | --- | --- | --- | --- |
| A | Add project → Git URL | Ctrl/Cmd+K → Add project → Git URL; Tab on empty input (Continue disabled); type `https://github.com/pingdotgg/t3code.git`; Tab; Shift+Tab; Tab; Enter | empty Tab and typed Tab both → Back | empty Tab → Back (disabled Continue skipped); typed Tab → Continue with focus ring + "Continue (Enter)" tooltip; Shift+Tab → input; Enter on Continue advances to clone destination once | recording 1440×900 light | yes |
| B | Add project → GitHub repository | type `pingdotgg/t3code`; Tab | Back | Lookup (focused) | recording 1440×900 light | yes |
| C | New project (publish hosts as the fresh dev env provides) | type `demo-tab-order`; Tab; Tab | host picker / next control | Create (focused), then next control | recording 1440×900 light | yes |
| E | Add project → Local folder (control) | type a partial existing path; Tab | completion in input | completion in input, unchanged | recording 1440×900 light | no (control) |
| W | Git URL, URL typed, Tab (state of row A after Tab) | still after Tab | focus on Back | focus ring on Continue + tooltip | still pair 390 wide, dark, plus 1440 light | yes |

Desktop renders the same web component (not separately captured). Mobile does not use this component.

## Revision 2 (after proof audit pass 2 and review round 2)
Shift+Tab is not intercepted by the folder/clone path completion handler (CommandPalette.tsx:2611), so in the browse steps the
enabled submit button becomes reachable by reverse traversal (input → Back → … wraps to the submit button). These rows are affected:

| Row | Fixture | Interaction | Expected before | Expected after | Capture | Affected |
| --- | --- | --- | --- | --- | --- | --- |
| B0 | Local folder, existing folder path typed (button "Add") | Shift+Tab repeatedly until focus wraps past Back, logging activeElement each step | submit button never focused | Add button focused (ring + tooltip) | recording 1440×900 light | yes |
| B1 | Local folder, missing folder path (button "Create & Add") | same | never focused | Create & Add focused | recording 1440×900 light | yes |
| B2 | Git URL → clone destination, missing path ("Create & Clone") | same | never focused | Create & Clone focused | recording 1440×900 light | yes |
| B3 | Git URL → clone destination, existing/highlighted path ("Clone") | same | never focused | Clone focused | recording 1440×900 light | yes |

Rows A, B, C, E: narrated timestamps must be read from the delivered frames (extract with ffmpeg, verify the stated state is on screen at that time), not from driver logs.
