Skip to content

FASE 4 - Migliorare accessibilità (keyboard, contrasto, screen reader) e micro-interazioni UI #84

@artcava

Description

@artcava

🎯 Obiettivo

Migliorare accessibilità e micro-interazioni della UI, rendendo l'app usabile anche da utenti con limitazioni visive/motorie e migliorando la percezione di fluidità tramite piccoli feedback visivi.

📋 Contesto

Requisiti derivati implicitamente da design system e best practice WPF:

  • Navigazione completa via tastiera
  • Focus visibile e coerente
  • Contrasto colori adeguato (WCAG)
  • Supporto screen reader (AutomationProperties)
  • Micro-animazioni per feedback (senza disturbare l'uso clinico)

📦 Ambiti di Intervento

1. Accessibilità Tastiera

  • Definire tab order logico nelle principali view:
    • MainWindow / sidebar
    • PatientListView / PatientFormView
    • ProjectFormView
    • CalendarView
    • VisitFormView
    • SyncView
  • Shortcut tastiera per azioni frequenti:
    • Ctrl+N → nuovo paziente/progetto (a seconda del contesto)
    • Ctrl+S → salva form
    • Esc → chiudi dialog/cancel

2. Focus Visibile

  • Implementare stile focus globale in Styles/Controls.xaml (border più spesso + colore accent)
  • Garantire che tutti i controlli interattivi mostrino focus quando attivi
  • Testare navigazione con Tab/Shift+Tab in tutte le view principali

3. Contrasto e Tema High-Contrast

  • Verificare contrasto testo/sfondo (>= 4.5:1 per testo normale)
  • Introdurre tema "High Contrast" opzionale:
    • palette con colori più saturi/differenziati
    • slider/toggle HighContrastMode in impostazioni
  • Introdurre stile alternativo per DataGrid e form per high-contrast

4. Screen Reader & AutomationProperties

  • Assegnare AutomationProperties.Name e AutomationProperties.HelpText a:
    • bottoni principali
    • campi form (in aggiunta alle label visuali)
    • elementi di lista critici (paziente selezionato, stato progetto, prossima visita)
  • Verificare con strumenti standard (Narrator/JAWS NVDA) la leggibilità base

5. Micro-interazioni (animazioni leggere)

  • Animazione leggera su hover/click di bottoni principali (opacity/scale minima)
  • Fade-in/out per snackbar di successo/errore
  • Highlight temporaneo di righe DataGrid modificate dopo salvataggio/sync
  • Disabilitare animazioni per utenti che richiedono "riduci movimento" (es. flag in impostazioni)

📋 Tasks

  • Definire stile focus globale e applicarlo a tutti i controlli interattivi
  • Mappare tab order per ogni view principale e correggere dove necessario
  • Aggiungere keybindings globali (InputBindings) per shortcut principali
  • Aggiungere tema High-Contrast e toggle in Impostazioni
  • Aggiungere AutomationProperties a controlli chiave
  • Implementare micro-animazioni per:
    • bottoni primari/secondari
    • snackbar
    • righe DataGrid aggiornate
  • Aggiungere opzione "Riduci animazioni" in Impostazioni e rispettarla in XAML
  • Aggiornare documentazione in docs/ARCHITECTURE.md / docs/WORKFLOW.md per sezione accessibilità

✅ Acceptance Criteria

  • Tutte le view principali sono navigabili al 100% con tastiera
  • Focus visibile su tutti i controlli interattivi
  • Tema High-Contrast attivabile/disattivabile da UI
  • Screen reader annuncia correttamente controlli e contenuti critici
  • Micro-animazioni attive ma non intrusive, disattivabili via impostazioni
  • Documentazione aggiornata con sezione "Accessibilità"

🔗 Riferimenti


CLUSTER: UI & UX (gap 5.3)
FASE: 4 - Polish & Deploy
PRIORITÀ: 🔵 MEDIA
DIPENDENZE: #55, #54, #83

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions