SEARCH_001_SEARCH_COVERS_VISIBLE_DATA:
Severity: major. Bereich: gui/datentabellen-crud.
Regel
(kein Regeltext)
Reflection-Check
check:
applies_when: search_present == true
example_fail: Tabelle zeigt Lisa Rossi / Bozen IT-Test GmbH, Suche nach Lisa liefert
null Treffer, weil die SQL-WHERE-Klausel nur customer_last_name und customer_firma
abdeckt, aber customer_first_name nicht.
example_pass: 'Suche umfasst alle Felder, die als Text im Render auftauchen: customer_first_name
+ customer_last_name + customer_firma + customer_email + technische ID-Spalte
fuer Power-Nutzer.'
fail: Sichtbare Klartextwerte (z.B. Vorname, Firma, Produkt) sind in der Tabellenzelle
dargestellt, fuehren aber bei Suche nicht zum Treffer - Nutzer baut falsches Modell
der Such-Reichweite auf.
pass: Das Suchfeld matcht jede Spalte, die in der Tabelle als Klartext-Information
sichtbar ist; nicht-textuelle Marker (PDF-Link, Status-Icon, Zahlenfeld) duerfen
ausgenommen sein, dann aber konsistent fuer alle Datensaetze.
rationale: 'Erwartungskonformitaet (ISO 9241-110) und Match between system and the
real world (Nielsen 1994 Heuristik 2). WCAG 3.2.4 Consistent Identification: gleiche
UI-Bedeutung verlangt gleiches Verhalten.'
remediation: 'Pro Liste: Spalten-Mapping erstellen Render-Cell <-> SQL-Feld. Alle
textuellen Cell-Inhalte als ILIKE-Klauseln in whereClause(). Optional: pro Spalte
explizites Attribut searchable im reflection_model setzen.'
type: searchEvidence
- WCAG22, Web Content Accessibility Guidelines 2.2
- NIELSEN_HEURISTICS, 10 Usability Heuristics for User Interface Design (Nielsen)
- ISO_9241_110, ISO 9241-110 Interaction principles