Problème 1 : Navigation dans les en-têtes cassée / Manipulation du DOM

Salut @awesomerobot, je suis un collègue de Cody et un ingénieur en accessibilité. J’ai examiné le dépôt pour diagnostiquer le problème. Comme vous le savez peut-être déjà, le problème principal semble être que (1) le contenu des publications masquées n’est pas visible par les lecteurs d’écran et (2) les publications ne sont démasquées que lorsqu’elles sont dans la vue d’un utilisateur par PostStreamViewportTracker.

En réfléchissant à une solution potentielle, je souhaite optimiser deux points : (1) permettre la navigation dans chaque publication par titre avec les lecteurs d’écran et (2) minimiser les modifications du dépôt Discourse et l’impact sur les performances.

L’approche que je recommande est de conserver un wrapper léger pour chaque publication chargée qui inclut le H2 sémantique utilisé pour la navigation par titre, tandis que le corps de publication lourd reste masqué. Cela maintient les titres stables pour les technologies d’assistance sans gonfler le DOM sur toute la page. Lorsqu’un utilisateur arrive sur le H2 d’une publication par navigation par titre, le lecteur d’écran déclenche un défilement de page qui, à son tour, démasque le corps de la publication sur place.

La viabilité de cette solution dépend du moment où le prochain bloc de publications est chargé. Une amélioration facultative est un titre sentinelle uniquement pour les lecteurs d’écran « charger plus de publications » (similaire à la « région de chargement supplémentaire » proposée dans votre PR) situé en bas de la liste des publications chargées. Lorsque ce titre entre en vue ou est sélectionné à partir du rotor des titres, il charge le bloc suivant et annonce l’achèvement via un message aria-live=polite.

3 « J'aime »