## CHANGES REQUIRED ### Important — Formular ist im echten Browser nicht absendbar - Der Server liefert `Referrer-Policy: no-referrer` (`scripts/health/health_dashboard_server.py:465`). - Chromium sendet deshalb beim nativen Formular-POST den Header `Origin: null`. - Der Server verlangt jedoch exakt `urlparse(origin).netloc == Host` und antwortet sonst `403 Forbidden` (`health_dashboard_server.py:311–315`). - Reproduktion bei **390×844, 200 % Text, Tastatursteuerung und Reduced Motion**: - vollständige sieben Werte per Tastatur eingegeben; - POST an `/health-actions/symptom-checkin`; - Request: `Origin: null`; - Response: `403`; - keine Queue-Datei, keine Bestätigung, keine Rückkehr zum Dashboard. - Kontrollprobe mit ausschließlich temporär auf `same-origin` geändertem Response-Header: - POST-Origin `http://127.0.0.1:8129`; - Queue-Datei mit Modus `0600`; - echte Einmal-Bestätigung sichtbar; - finale URL: `/health-dashboard-v5#capture-status`, ohne `queued`-Parameter. - Die neue Browserprüfung entdeckt dies nicht: Sie fälscht den Bestätigungszustand per Response-Replacement und beendet den Dialog über „Abbrechen“, ohne einen echten POST auszuführen (`tests/browser/dashboard_v5.spec.js:354–359, 380–383`). ### Positiv verifiziert - Ausschließlich synthetischer Server auf `127.0.0.1:8129`, mit `/tmp/healthmanager-v5-s5c-browser`; keine Produktionsdaten geöffnet. - Natives modales ``, korrekte Beschriftung und `:modal`. - Initialfokus auf `select[name=aphthen]`. - Vollständiger Fokuszyklus: sieben Selects → Notiz → Abbrechen → Vormerken → zurück zum ersten Select; Shift+Tab funktioniert rückwärts. - Escape und Abbrechen schließen den Dialog und geben Fokus an „Beschwerden erfassen“ zurück. - Pflichtfeldfehler fokussiert das erste Select und zeigt die native Meldung „Wähle ein Element in der Liste aus.“ - Ziele bei 200 %: Selects `328×47`, Textarea `328×98,8`, Buttons mindestens `198,8×66,4` CSS-Pixel. - Kein horizontaler Overflow; Dialog `366×820`, intern scrollbar und alle Bedienelemente per Tastatur erreichbar. - Reduced Motion aktiv. ### Testresultate - Playwright: **17/17 bestanden** - Python: **33/33 bestanden** - `git diff --check`, JS-Syntax und Python-Kompilierung: bestanden **Dateien:** Repository unverändert. Temporäre Prüfskripte und die synthetische Queue-Datei wurden anschließend entfernt.