Overview

Accessibilità

Feature A11y usate nei campi dinamici del parametric-dialog, senza impattare il layout visivo corrente.

Scope

  • Campi renderizzati dinamicamente via wuic-field-editor / wuic-field-filter.
  • Associazione etichette-controlli per widget nativi e widget PrimeNG.
  • Navigazione tastiera coerente tramite tabIndex calcolato in base all'ordine campi.

Advanced

Accessibilità

Per i campi dinamici del form (parametric-dialog) il framework applica queste regole:

  • for="" sulle label solo quando il controllo target e realmente associabile (evita warning browser su label orfane).
  • fallback semantico: quando for non e affidabile, viene usato aria-labelledby sul controllo input interno.
  • id label stabile (<field.ang_name>__label) usato come riferimento A11y per widget complessi (p-autoComplete, p-select).
  • applicazione runtime di aria-labelledby anche dopo rerender async dei widget PrimeNG.
  • tabIndex dinamico propagato ai field widget in base all'ordine dei campi nel form.
  • tabIndex esteso anche ai pulsanti toolbar del parametric-dialog (isEditForm=true) dopo l'ultimo campo editabile.

Tema ad alto contrasto

E disponibile anche una variante tema ad alto contrasto selezionabile dalla dropdown tema (Accessibilita Alto Contrasto).

  • attiva la classe globale theme-high-contrast su html/body.
  • mantiene il layout corrente (nessun cambio struttura componenti), intervenendo solo su token colore, bordi e focus ring.
  • aumenta contrasto foreground/background e rende i bordi dei controlli piu evidenti.
  • applica focus visibile rinforzato (outline ad alto contrasto) per navigazione tastiera.
  • mantiene compatibilita con i preset PrimeNG gia in uso (base aura + override A11y).

Target normativo di riferimento (Italia/UE):

  • WCAG 2.1 livello AA (criteri di contrasto, focus visibile e navigazione da tastiera).
  • EN 301 549 (standard europeo per accessibilita ICT nel settore pubblico).
  • Legge 4/2004 "Legge Stanca" e linee guida AGID (contesto italiano PA).

Esempi visivi (gallery "Feature screenshots"):

  • manual-accessibilita-01 — edit-form metadata in tema alto contrasto: tab parametric-dialog con bordi 2px neri, indicatore tab attivo --hc-accent blu (#0038a8), ring focus contrastato, audit Lighthouse Accessibility 93.
  • manual-accessibilita-02 — list-grid in tema alto contrasto: header tabella, righe e controlli filtro con palette WCAG (bg #ffffff, fg #000000, bordi --hc-border), audit Lighthouse Accessibility 100.

Note operative

  • Nessun cambiamento richiesto al layout CSS: gli interventi sono semantici/accessibility-first.
  • In caso di widget custom aggiuntivi, esporre @Input() tabIndex e (se necessario) @Input() ariaLabelledBy.
  • Verifica consigliata in DevTools > Issues:

- assenza warning Incorrect use of <label for=...>;

- assenza warning No label associated with a form field;

- ordine focus tastiera coerente con ordine campi/pulsanti.

Screenshot

accessibilita / parametric-dialog tabs in alto contrasto + Lighthouse
accessibilita / parametric-dialog tabs in alto contrasto + Lighthouse
accessibilita / list-grid in alto contrasto + Lighthouse Accessibility 100
accessibilita / list-grid in alto contrasto + Lighthouse Accessibility 100