Résoudre un problème d’accessibilité des notifications UWP in App
Si vous utilisez les notifications in app fournies par le Windows Community Toolkit, il y a un petit problème d’accessibilité à gérer.
Le problème
Lors de l’affichage des notifications, il n’y a aucun problème. Le problème se présente ensuite. Quand les notifications sont cachées, elles restent accessibles au clavier. Ceci n’est pas normal. L’utilisateur a le focus sur un control qui n’est pas visible. Il n’a donc aucun moyen de savoir où est le focus.
La solution
Pour résoudre le problème, il faut jouer avec la propriété IsTabStop
du control. Ma solution simple est en deux partie.
Dans un premier temps, on affecte IsTabStop
à false
via le XAML. On en profite pour s’abonner aux évènements Opened
et Closed
.
<controls:InAppNotification
x:Name="InAppNotification"
IsTabStop="False"
ShowDismissButton="True"
Opened="InAppNotification_Opened"
Closed="InAppNotification_Closed"/>
Dans un second temps, côté C# :
- on affecte
IsTabStop
àtrue
lors de l’ouverture. - on affecte
IsTabStop
àfalse
lors de la fermeture.
private void InAppNotification_Closed(object sender, Microsoft.Toolkit.Uwp.UI.Controls.InAppNotificationClosedEventArgs e)
{
InAppNotification.IsTabStop = false;
}
private void InAppNotification_Opened(object sender, EventArgs e)
{
InAppNotification.IsTabStop = true;
}
Voilà, problème résolution.
Moralité
Toujours tester son application au clavier après avoir ajouté un nouveau control.