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.

Jérémy Jeanson

Comments

You have to be logged in to comment this post.