NVDAをページで使用できるようにするために、ウェブページにライブリージョンサポートを追加しようとしています。しかし、私はaria-live
属性とはかなり異なる動作を予想よりも見た。NVDAの動作
Iは非表示とIはスクリーンリーダで読み取ることがその領域内のすべてのメッセージ(
<p>
タグで囲まれた各メッセージ)ダンプされた単一のライブ領域を追加しようとしています。正常に動作しますが、唯一の問題は、ライブ領域divに挿入された最初のメッセージがNVDAスクリーンリーダーで読み取られないことです。後続のメッセージは完全に読み取られます。このライブ領域divは、最初のメッセージが発表されるときに動的に作成されます。aria-live="assertive"
は、メッセージをアナウンスするために現在のフローを実際に中断しません。私はウェブページでノックアウトを使用しています。ライブ領域としてマークされたHTML divがノックアウト条件に基づいて表示される場合、スクリーンリーダーでは検出されません。たとえば、 :ページが最初にロードされると
<!-- ko if: $data --> <div aria-live="polite" data-bind="text: $data"> </div> <!-- ko -->
、$データがnullです。だからライブ領域divは存在しません。しかし、データがフェッチされるとdivが挿入されます。しかし、NVDAは追加されたdivの内容を読み込みません。これは予想される動作ですか?この問題を解決するための回避策はありますか?
ライブリージョンは、読み込み時にページ上に表示されます。あなたの例をテストできるURLがありますか? – aardrian
申し訳ありませんが、私はあなたがテストできるURLを持っていません –
私は単一のライブリージョンにメッセージをダンプしても、そのライブリージョンは、最初にそのようなメッセージが到着したときに動的に作成されます。 –