4

私の同僚が、彼のプロジェクトの 1 つで問題を抱えて私のところに来ました。スクリーンリーダーとテクノロジーの経験が不足しているため、彼を助けることができませんでした.SOユーザーの誇り高く強力な集団であるあなたに頼ります.

TLDR 関係者向けのまとめ: UpdatePanels のグリッドがスクリーン リーダーで機能しません。AJAX ツールキットの何かでしょうか。

私たちが次に取ることができるかもしれないステップについて、誰か助けたり提案したりできますか?

これが私の同僚から受け取ったものです (強調は私のものであり、スキャン可能性を向上させることを望んでいます):


私は現在アクセシビリティに取り組んでおり、Ajax を使用するページに関していくつかの問題に遭遇しました。. スクリーン リーダーを使用して、ページのアクセシビリティをテストしました。スクリーン リーダーは、音声 (テキスト読み上げ) を使用して画面に表示されている内容を識別または解釈しようとし、その情報をユーザーに送信します。これは、目の不自由な人、視覚障害のある人、読み書きができない人、または学習障害のある人にとって非常に役立ちます。ここでは、スクリーン リーダーのしくみについて簡単に説明します。スクリーン リーダーは Web ページのスナップショットを取得し、コンテンツを仮想バッファーに配置します。スクリーン リーダーは仮想バッファーを使用して、ユーザーがコンテンツをナビゲートできるようにします。スクリプトでコンテンツが変更された場合、これをスクリーン リーダーに伝える必要があります。何が変更されたかを検出するメカニズムがなければ、スクリーン リーダーのユーザーは、コンテンツが変更されたことをまったく通知されない可能性があります。テストには、Access To Go 3.0.76 と Jaws 10.0 の 2 種類のスクリーン リーダーを使用しました。

テスト中の私の発見は、更新パネル内にグリッドビューがあるページ、たとえば典型的な検索ページでは、スクリーン リーダーが通常どおり、検索の前にページ上のすべての情報 (検索基準) を読み上げるということでした。検索ボタンを押すと、列ヘッダーと結果セットを含むグリッドビューが生成されます。スクリーン リーダーは、新しいコンテンツがページに書き込まれたことを知らせる情報を取得しないため、無音になります。Microsoft の従業員は、更新パネル内に非表示の IFrame を挿入して、スクリーン リーダーをトリガーして更新されたコンテンツに移動し、それを読み上げるという手法を推奨しています。この Web サイトでは、UpdatePanel コントロールのみを使用してアクセシビリティを実現する方法について説明しています。私はこの手法をテストしましたが、機能させることに成功しませんでした。iframe をレンダリングしますが、スクリーン リーダーはまだページの更新を認識していません。

AjaxControlToolKit のバージョンは 1.0.11119.0 で、ARIA (Accessible Rich Internet Applications) ライブ リージョン マークアップを提供していません。ライブ領域は、要素がフォーカスされていない状態でコンテンツの変更が発生する可能性があることを示し、それらのコンテンツの更新を処理する方法に関する支援技術情報を提供します。W3C は、ページのコンテンツを編成する方法に関するセマンティックを推奨しています。これは基本的に、支援技術がユーザーに適切な情報を伝えることができるように、ページ上のすべての要素に役割を与えます。技術的にどこにいるのかという点で、これが何を意味するのかはわかりません。

4

2 に答える 2

1

それは、ユーザーに提供したい更新の優先度に完全に依存します。スクリーン リーダーをより冗長にすることにはならないことに注意してください。ARIA のライブ リージョンを使用して、優先度では、更新をポリライト アトミックまたはアサーティブとしてマークできます。

于 2016-09-30T11:31:59.623 に答える
1

AJAX ウェブページはスクリーン リーダーにとって、少なくとも Jaws にとっては問題ではありません。それは約 2 年前のことです (私は Jaws でうまく動作する AJAX をたくさん使ったいくつかのウェブ アプリを開発しました)。

とにかく、優れた画面 CSS レイアウトと、アクセシビリティを向上させる HTML アンカー (タイトル、alt、タブインデックス、ラベル) を使用する必要があります。

とにかく、アクセシビリティについて本当に心配している場合は、iframe を介してすべてをロードし、コールバックを使用して親を更新する必要があります ( <script>iframe コンテンツで親コンテナー DIV を更新する小さなタグ)。PORK.Iframe ( http://schizofreend.nl/Pork.Iframe ) もご覧ください。

編集: そこには良いものがあります: AJAX とスクリーンリーダーに関する Sitepoint の記事

于 2009-08-10T20:29:31.140 に答える