@awesomerobot さん、こんにちは。コーディの同僚で、アクセシビリティエンジニアです。問題を診断するためにリポジトリを確認しました。ご存知かもしれませんが、主な問題は次のとおりです。(1) クロークされた投稿のコンテンツはスクリーンリーダーで表示できず、(2) PostStreamViewportTracker によってユーザーのビュー内にある場合にのみ投稿がクローク解除されます。
修正方法を検討するにあたり、次の 2 つを最適化したいと思います。(1) スクリーンリーダーで各投稿に見出しによるナビゲーションを有効にすること、(2) Discourse リポジトリへの変更とパフォーマンスへの影響を最小限に抑えること。
推奨されるアプローチは、各読み込まれた投稿に軽量なラッパーを維持することです。これには、見出しナビゲーション用のセマンティック H2 が含まれ、本文の大部分はクロークされたままになります。これにより、ページ全体に DOM を膨張させることなく、支援技術の見出しを安定させることができます。ユーザーが見出しナビゲーションを介して投稿の H2 に着地すると、スクリーンリーダーはページスクロールをトリガーし、それによって投稿の本文がその場でクローク解除されます。
このソリューションの実現可能性は、次に読み込まれる投稿のチャンクによって異なります。オプションの改善は、読み込まれた投稿のリストの下部にある「投稿をさらに読み込む」というスクリーンリーダー専用のセンチネル見出しです(PR で提案されている「読み込み領域」と同様)。この見出しが表示されたとき、または見出しローターから選択されたときに、次のチャンクが読み込まれ、aria-live=polite メッセージを介して完了がアナウンスされます。