# P5-15-04-A11Y-01 — Native file-picker keyboard repair ## Reproduction checkpoint From `f55c761ac229a69357a1c5b68a06e837cfa31ec0`, the unchanged native audit again reports six Enter/Space failures for Upload, Import JSON and Convert CSV to Import JSON; the three pointer comparisons succeed. The native suite's other failure is the separately owned CV source route. No files were uploaded by these chooser observations. The label-only MUI buttons have no click handler. MUI keyboard activation invokes a nonnative button's handler; it does not emulate the browser's label-to-input default activation. The same pattern exists in Add Job's four attachment buckets. It is not an API, permissions or file-validation failure. `src/file-picker-activation.test.tsx` adds eight real-component cases: seven keyboard/input activation boundaries fail with expected one input click/actual zero; an eighth covers file/Job association, uploading disabled state and post-upload selection reset. Its initial matcher setup failed and is not application RED evidence. Fixture label/step and matcher setup mistakes were corrected; they are not application defects. Affected contracts: PRES-W08 attachments and PRES-J10 import/export; Add Job same-pattern caller is covered without changing its domain workflow. Whole groups remain FAIL at this reproduction checkpoint. No implementation correction or fresh full-suite claim is made here. Production remains NO-GO; human screen-reader/device acceptance remains incomplete. ## Repair successor — GO for the bounded functional repair The three audited controls and Add Job's shared bucket control now use native buttons that click their existing referenced file inputs. Inputs remain hidden siblings, preventing bubbled input clicks from reactivating the button. Existing accepted-file constraints, multiple selection, bucket ownership, API payloads, upload progress/reset and import/conversion implementations are retained. There is no API/schema/storage change or extra dependency. Fresh rebuilt application: the original native chooser case passes **all six Enter/Space checks and three pointer checks**, without writing file data. The eight real-component cases pass, including distinct Add Job buckets and the two-file Job association/disabled-upload/reset behaviour. Complete frontend **498/498 across83 suites**, +8 from490; TypeScript, lint and production export build pass. Fresh backend1,033, focusedAI108, revision5/5 and sidecar49 also pass; those unchanged backend contracts remain independent owner/data proof. The suite's other documented browser failures are not claimed fixed by this repair. PRES-W08/J10 may move FAIL→PARTIAL after this verified boundary is reconciled; whole-group human/provider/long-tail requirements remain. Actual native chooser activation is stronger than a mocked picker success; upload/domain ownership additionally has backend evidence. Human screen-reader and physical-touch acceptance are still incomplete. Production remains NO-GO.