Windows App Cert Kit, rapporto tra colore di sfondo e colore del testo
Prima di poter tentare il submit di un’app Windows 8 per lo Store, è necessario far girare localmente sul vostro PC il tool in oggetto, il Windows App Cert Kit. Non ve ne potete scordare, perchè vi viene automaticamente proposto da Visual Studio appena terminate di creare il package da uploadare nella dashboard. Questo tool fa un sacco di controlli in locale, e vi segnala eventuali problemi che causerebbero la bocciatura dell’app stessa, senza però farvi perdere tempo (qualche giorno) prima di avere un feedback da parte di Microsoft.
Ieri sera, facendolo girare a seguito della creazione di un nuovo package, mi ha bocciato l’app con la seguente unica motivazione:
Il rapporto del contrasto tra colore di sfondo e colore del testo in primo piano è 1,16. Questo rapporto deve essere maggiore o uguale a 1,5.
La morale, ben spiegata dal testo, è che non c’è abbastanza contrasto tra il colore di sfondo ed il colore del testo. Un valore 1 significa che in pratica avete lo stesso colore, il che è assurdo. Prima che vi mettiate a ripensare un altro colore di sfondo, a rifare i loghi, a ridisegnare le icone, etc. etc., aprite il file di manifest dell’app (Package.appxmanifest) e date un’occhiata alle seguenti impostazioni:
- Foreground text
- Background color
Il Windows App Cert Kit non misura quel rapporto guardando veramente i colori delle vostre Page, ma guarda questi due parametri. Nel mio caso, avevo impostato un colore di sfondo #F2EEDC, mentre il colore del testo era impostato a Light. In pratica, un colore molto simile al bianco, con il testo bianco. Direi poco contrasto, come riportato dal tool! La realtà quindi è che la mia app era perfettamente visibile ed usabile, perchè nei vari elementi della UI non usavo quel valore, ma avevo io impostato “Black” tramite una mia risorsa, senza usare le risorse di sistema.
E’ bastato mettere il ‘Foreground text’ a Dark e l’app ha passato il test con successo.

Grazie mille, mi stavo scervellando pure io su questo problema che mi dava il CertificationKit di Windows