Skip to content

Inventaire des Modales Héritées

Problématique

Certaines surfaces de l'interface utilisateur reposent encore sur des modèles de modales hérités qui n'utilisent pas le système de navigation par croix directionnelle (selectable.ts). Cela réduit l'accessibilité et la cohérence sur les plateformes TV.

Aperçu de la Solution

Ce document répertorie les modèles de modales hérités restants (<dialog> natif et common/Dialog) et souligne où ils sont utilisés, afin qu'ils puissent être migrés vers la pile de modales moderne compatible avec la croix directionnelle.

Inventaire

Utilisation du <dialog> natif

  • src/lib/components/common/Modal.svelte

    • Utilise <dialog> directement et le gère via showModal().
    • Non intégré avec Container/Modal (croix directionnelle).
  • src/lib/utilsModals.ts

    • Utilise document.querySelectorAll('dialog[open]') et HTMLDialogElement dans closeInnermostDialog().
  • src/lib/lg/ui/dialog.ts

    • Utilise HTMLDialogElement avec document.getElementById('TVLG') pour un comportement spécifique à LG.

Utilisation du common/Dialog hérité

  • src/lib/components/common/Dialog.svelte

    • Composant de dialogue hérité (pas de gestion du focus par croix directionnelle).
  • src/lib/components/android/AndroidUpdateDialog.svelte

    • Importe et affiche common/Dialog pour les invites de mise à jour Android.

Notes de Migration

  • Les nouvelles modales compatibles avec la croix directionnelle doivent utiliser :

    • src/lib/components/modal/Modal.svelte (piège à focus + gestion du retour)
    • src/lib/components/dialog/Dialog.svelte et composants de dialogue associés
  • Le comportement des dialogues spécifique à LG dans src/lib/lg/ui/dialog.ts peut nécessiter un plan de migration dédié pour éviter de casser la logique spécifique à la plateforme.

Prochaines étapes

  1. Remplacer l'utilisation de common/Dialog dans AndroidUpdateDialog.svelte par la nouvelle pile de dialogues (components/dialog/Dialog.svelte).
  2. Auditer l'utilisation de common/Modal.svelte et planifier un chemin de migration vers la nouvelle pile de modales avec gestion du focus par croix directionnelle.
  3. Évaluer si closeInnermostDialog() peut être remplacé par les contrôles de la pile de modales ou supprimé entièrement.