UX- & Prozess-Review der App (Stand v0.116.1, 2026-07-26)
Zielgruppen: Business/Management (Kernaussage + Maßnahmenplan) · IT-Dev (Befunde mit Datei:Zeile). True North: Prüft, ob die App die drei Leitfragen verständlich, konsistent und intuitiv beantwortet — diese Runde als Wirksamkeits-Kontrolle über 17 Minor-Versionen (v0.99.12 → v0.116.1): halten die geprüften Kern-Muster (Overlay-Shell, Reiter-A11y, Token-Disziplin), und tragen die seither gebauten großen Flächen (echter DocuSign-Assistent inkl. Vor-Ort · Fremdformulare Weg A/B + AD-009-Rücklauf · Hausformular-Auto-Routing · Cockpit-Fokus-Umbau · Mandate-Overlay) denselben Meisterwerk-Anspruch? Methode: Code-Re-Audit gegen die v0.99.12-Befunde (B36–B40) + Neu-Flächen-Sweep (silent-error- Swallowing,
role="alert"-Abdeckung, Touch-Ziele, G-8-Labels vs. rohe Enums, Token-Disziplin, Overflow- Risiko), jeweils mit Verdikt + Datei:Zeile. Bezugspunkt & Gültigkeit (MED-D-97): v0.116.1 · Commit5031530· 2026-07-26. Löst das v0.99.12-Audit (MED-D-217) ab. Dessen BacklogMED-OP-UX-11(B36–B40) ist noch nicht begonnen und wird unverändert weitergetragen; neu abgeleitet: B41–B43 →MED-OP-UX-12. Nächster App-Audit gemäß Stale-Regel (agents.md§6.7: ≥10 Minor-Versionen oder >90 Tage).
1. Kernaussage
Die App hat über 17 Minor-Versionen viel neue, solide Fläche gewonnen — aber die zwei jüngsten Flächen
(Fremdformular-Feld-Editor und Rücklauf-Prüfung) tragen die einzigen neuen Defekte, und der A11y-/Ehrlichkeits-
Backlog der letzten Runde (B36–B40) ist unangetastet geblieben. Der geprüfte Design-System-Kern hält
ohne Regress — die geteilte md-overlay-Shell (Scrim/ESC/Fokus-Falle/role="dialog"/aria-modal) und
die Reiter-Roving-tabindex-Navigation sind intakt und werden von allen vier neuen Overlay-Konsumenten
korrekt genutzt. Die großen neuen Strecken sind überwiegend sauber gebaut: der Unterschriften-Assistent
meldet Teilfehlschläge ehrlich („X von Y"), Verwaltung und Auftrags-Overlay tragen role="alert" auf jeder
Fehlerfläche, der Cockpit-Fokus-Umbau (Mandant-Gruppierung + Filterleiste + „Zu fakturieren") hat aria-label/
aria-pressed und ehrliche Leerzustände.
Was von der glatten Note trennt, sitzt konzentriert in den zwei neuesten Komponenten — plus dem unveränderten Vor-Backlog:
- Ein echter Token-Regress (B41, hoch): der neue
akte-feld-editornutzt undefinierte Tokens (--fg/--fg-faint/--gruenexistieren nirgends; die echten sind--text/--mut/--green) → die hartkodierten Dark-Mode-Hex-Fallbacks greifen immer, der Feldname-Text wird im Default-/Light-Theme nahezu unsichtbar (near-white auf hellem Card-Grund). Das bricht die v0.99.12-Zusicherung „kein eingeschleuster Hex, Token-Disziplin makellos" und ist funktional gravierend (der Feldname ist genau das, was der Nutzer zum Mappen lesen muss). - Eine neue Falsch-Leere (B42, mittel-hoch): schlägt der Rücklauf-Load fehl, zeigt das Overlay die beruhigende „Keine übernehmbaren Rückläufe"-Meldung statt eines Fehlers — der echte Fehlerbanner sitzt hinter dem Scrim. Ein Fehlschlag sieht aus wie „nichts zu prüfen" (gegen True North #2, wie B40).
- Der komplette Vor-Backlog B36–B40 ist unverändert offen (Badge-Kontrast · 16-px-Touch-Ziel ·
Tabs-
aria-controls· 2role=alert-Restlücken · Cockpit-Falsch-Leere) — kein Fix seit v0.99.12.
Bewertung je Dimension (10 = Meisterwerk; ↑/↓ ggü. v0.99.12):
| Dimension | v0.99.12 | v0.116.1 | Begründung (Kurzform) |
|---|---|---|---|
| Informationsarchitektur & Prozessführung (intern) | 9 | 9 | Vier große neue Flächen (DocuSign-Assistent, Fremdformular-Verwaltung, Cockpit-Fokus, Mandate-Overlay) sauber strukturiert und über die geteilte Overlay-Shell integriert; die 5-Reiter-IA hält |
| Verlässlichkeit des Feedbacks | 8,5 | 8 | Assistent/Verwaltung/Auftrag melden ehrlich (Teilfehlschlag „X von Y", role="alert"); aber: neue Rücklauf-Falsch-Leere bei Load-Fehler (B42) + cockpit#meineWiedervorlagen() still (B40) |
| Selbsterklärbarkeit / eine Sprache (G-3/G-8) | 9 | 9 | zentrale Label-Maps halten und werden von den neuen Flächen genutzt; der Verwaltung-Dropdown ist aus DOKUMENTTYP_LABEL abgeleitet (MED-D-258), kein roher Enum-Durchschlag |
| Kundenstrecken (öffentlich) | 8,5 | 8,5 | keine neue öffentliche Drift; B36 (Badge-Kontrast) + B37 (16-px-Ziel) unverändert offen |
| Konsistenz Design/Interaktion | 8 | 7,5 | Regress: die v0.99.12-„makellos, kein eingeschleuster Hex"-Zusicherung bricht im neuen akte-feld-editor (undefinierte --fg/--gruen → feste Hex-Fallbacks, B41) |
| Mobile & Erreichbarkeit | 8 | 8 | Feld-Editor kollabiert korrekt auf eine Spalte (@640px); Rest-Risiko: internes <24px-Ziel „Rücklauf prüfen" (B43) + Auftrag-/Rahmendaten-Grid ohne Collapse ≤390px |
| Barrierefreiheit | 8,5 | 8 | Overlay-Dialog-Semantik + Roving-tabindex intakt; aber: B41 (nahezu unsichtbarer Text im Default-Theme) schlimmer als sub-AA, dazu B38 (Tabs-aria-controls) + B39 (2 role=alert-Lücken) unverändert offen |
2. Was gehalten wurde (bewahren)
Belegt im Code-Re-Audit + Neu-Flächen-Sweep (Datei:Zeile):
- Design-System-Kern ohne Regress:
- Geteilte Overlay-Shell
akte-overlay.component.ts—role="dialog"(:24),aria-modal="true"(:25),aria-label(:26), Scrim-Close (:20), Initial-Fokus in den Panel (:59), Fokus-Falle (Tab-Wrap:91-100), Fokus-Rückgabe beim Zerstören (:64), ESC nur bei Fokus im Panel (:82-90). Alle vier neuen Konsumenten nutzen sie korrekt (akte-feld-editor:21,akte-auftraege:68, Rücklauf-Overlaymandant-detail:1096, Assistent-Overlays). - Reiter-A11y (
mandant-detail) —role="tablist"(:318) + Roving-tabindex(:320) +registerTaste()Pfeil/Pos1/Ende (:2625) intakt.
- Geteilte Overlay-Shell
- Neue große Flächen überwiegend sauber:
- Unterschriften-Assistent (
akte-unterschriften-assistent.component.ts): ehrlicher Teilfehlschlag „X von Y versendet" (:712/:716/:820), Ergebnis-/Versendet-Kartenrole="status"(:334/:353), Provider-Ehrlichkeit „Demo/nicht rechtsgültig" (:336); diecatch {}-Blöcke (:691/:786/:875/:881) sind echte sekundäre best-effort-Write-backs (Frist-WV/Abgleich/SEPA/Aufgabe), deren Ausgang auf der Ergebniskarte angezeigt wird — nicht still auf Primär-Content. - Fremdformular-Verwaltung (
verwaltung.component.ts):role="alert"auf jeder Fehlerfläche (:39/:77/:151/:174/:216/:281), per-Loader-Fehler-Tracking,fieldset/legendfür die Attribut-Gruppe. - Cockpit-Fokus-Umbau (
cockpit.component.ts): Such-aria-label(:241), Kategorie-Chipsaria-pressed(:248), „Zu fakturieren"-Togglearia-pressed+title(:256), ehrlicher such-bewusster Leerzustand (:279); die zwei Kern-Loads setzenladeFehler(:785/:789). - Mandate-Overlay (
akte-auftraege.component.ts): Load-Fehlerrole="alert"+Retry (:43), Latest-Load-Guard (:370), ehrliche Playbook-Teilfehlschlag-Warnungen (:436/:454/:551), zentrale Label-Maps (:394-407), Öffnen über die geteiltemd-overlay(:68).
- Unterschriften-Assistent (
3. Verbliebene & neue Befunde
3.1 Unverändert offen aus v0.99.12 (MED-OP-UX-11, B36–B40) — kein Fix seit dem letzten Audit
| # | Befund | Beleg (v0.116.1 verifiziert) | Status |
|---|---|---|---|
| B36 | Fragebogen-Badge weiß-auf-Farbe unter WCAG-AA (v. a. Dark) | fragebogen-public.component.ts:191-195 (color:#fff auf --amber/--mut) | offen |
| B37 | 16-px-Touch-Ziel „übernehmen" auf der Onboarding-Strecke | onboarding-public.component.ts:113 (kein min-height) | offen |
| B38 | Reiter role="tab" ohne aria-controls; Ziel-Sektionen ohne role="tabpanel" | mandant-detail.component.ts:320, Ziele z. B. :662 | offen |
| B39 | 2 role="alert"-Restlücken | (a) mandant-akte.component.ts:339 primärer Ladefehler · (b) akte-meetings.component.ts:30 mtgFehler() | offen |
| B40 | cockpit#meineWiedervorlagen() scheitert still → Falsch-Leere/Aktionsverlust | cockpit.component.ts:792 (error: () => {}) | offen |
3.2 Neue Befunde (der nächste Backlog → MED-OP-UX-12)
B41 — Feld-Editor nutzt undefinierte Tokens → Feldname-Text im Light-Theme nahezu unsichtbar (hoch; A11y-Kontrast + Token-Regress; NEU — höchster Punkt)
akte-feld-editor.component.ts:111 .mw-fe-name { color: var(--fg, #e6e9ef) }. --fg ist nirgends definiert
(die echten Text-Tokens sind --text/--mut/--green, styles.css:465-506) → der near-white Dark-Mode-
Fallback #e6e9ef greift immer, im Default-/Light-Theme also near-white Text auf hellem --card =
effektiv unsichtbar, weit unter AA. Betrifft den Text, den der Nutzer zum Feld-Mapping lesen muss.
Ebenso :112,:114 var(--fg-faint, #8a90a0) und :120 var(--gruen, #76b82a) (undefiniert → feste, nicht
theme-fähige Hex). Das ist der Token-Disziplin-Regress aus §1. Fix: --text/--mut/--green nutzen.
B42 — Rücklauf-Prüfung zeigt bei Load-Fehler eine Falsch-Leere „nichts zu prüfen" (mittel-hoch; True North #2, stille Falsch-Leere auf Primär-Content; NEU)
mandant-detail.component.ts:1102-1103: die beruhigende Leer-Meldung „Keine übernehmbaren Rückläufe — die
gemeldeten Werte stimmen mit den Stammdaten überein" wird bei jedem leeren ruecklaufVorschlaege()
gezeigt — auch nach einem Load-Fehler (oeffneRuecklauf schreibt den Fehler nach dokFehler, :1394),
weil dessen role="alert"-Render nur im gefüllten @else-Zweig sitzt (:1123) und sonst hinter dem
Overlay-Scrim unsichtbar ist. Ein Fehlschlag ist nicht von „nichts zu übernehmen" unterscheidbar. Fix:
eigenes ruecklaufFehler-Signal, im Overlay in allen Zweigen mit role="alert" rendern.
B43 — „Rücklauf prüfen"-Button unter 24-px-Touch-Ziel (niedrig; WCAG 2.5.8; NEU, internes Tool)
mandant-detail.component.ts:722 padding:4px 10px; font-size:0.8rem ≈ 21 px hoch, unter dem 24-px-Minimum.
Internes Desktop-Tool (geringere Schwere als das öffentliche B37), gleiche Defekt-Klasse. Fix: min-height:24px.
Weitere Kleinbefunde (gebündelt in MED-OP-UX-12): Rahmendaten-/Auftrag-Grid ohne responsive Collapse
(Overflow-Risiko ≤390px, akte-auftraege.component.ts:146 1fr 1fr ohne Media-Query — das korrekte
Gegenmuster steht in akte-feld-editor.component.ts:133-135, das bei 640px kollabiert); --fg-faint/--gruen-Fallbacks
als nicht-kritischer Teil von B41.
B35 — Carry-over, bewusst zurückgestellt (bekannt/akzeptiert, kein Regress)
Unverändert: B32(b)-Rest (drei Modal-Dialoge mit eigener Fokus-Falle außerhalb der md-overlay-Shell;
Pill-Render-Vereinheitlichung; ~300 Einzelwert-Inline-Styles) + Server-Enum-Flags versendet/nicht_erforderlich.
4. Maßnahmenplan
Zwei offene Wellen, klar priorisiert:
MED-OP-UX-12(neu) — die neuen Frontier-Defekte zuerst. Reihenfolge nach Wirkung: B41 (unsichtbarer Feldname-Text im Default-Theme — echter A11y-/Token-Defekt, 3-Zeilen-Fix) → B42 (Rücklauf-Falsch-Leere, True North #2) → B43 + Grid-Collapse-Kleinbefunde. B41 ist der dringendste Einzelpunkt des ganzen Audits (unsichtbar > sub-AA) und zugleich der billigste — empfohlen als sofortiger Vorzieh-Fix.MED-OP-UX-11(unverändert offen) — die A11y-/Ehrlichkeits-Restmeile (B36–B40): Badge-Kontrast → 16-px-Ziel →role=alert-Restlücken + Cockpit-Falsch-Leere → Tabs-aria-controls. Über 17 Minor unberührt geblieben — bewusst nachziehen.
B35/Carry-over bleibt bewusst offen (kein Regress).
Dieses Audit ist ein Zeitdokument (MED-OP-REVIEW-1 / agents.md §6.7): Bezugspunkt v0.116.1 · Commit
5031530 · 2026-07-26. Befunde werden als MED-OP-UX-11 (Carry-over B36–B40) + MED-OP-UX-12 (neu B41–B43)
in den Backlog überführt, nicht im Audit abgearbeitet. Keine Versionsänderung durch diesen Refresh.