スクリーンアクセスプログラムによるブロックHTMLコードの解析の機能

インターネットは、多くの完全に異なる人々を結び付けます。彼らのサイトのユーザーの間に存在する人々を含め、多くの開発者は疑いさえしないか、単に考えていません。 特に、私たちは視力に障害のある、または著しく障害のある人々について話している。



標準表現のサイトはグラフィック素材の選択であるため、その開発は、原則として、提示されたデータの視覚認識と開発結果の視覚制御を正確に考慮して実行されます。 ただし、視覚障害者の場合、視覚的に完全に同一の2つのページが異なって見える場合があります。これは、主にソースコード内のブロックの順序によるものです。



視覚障害を持つユーザーとの連携の原則に関する詳細については、 別の記事を参照してください ;ここでは、ハイパーテキストドキュメントを提示する概念のみを簡単に説明します。



ディスプレイからの情報を直接知覚できない重大な視覚障害の場合、音声合成により情報を読み上げるか、点字フォントの形式で特別な触覚ディスプレイに表示する補助ソフトウェアが使用されます。 このようなソフトウェアは、通常「スクリーンリーダー」と呼ばれます(ロシア語では最も頻繁に「スクリーンアクセスプログラム」)。



ハイパーテキストドキュメントのコンテンツを表示するために、スクリーンアクセスプログラムは(ブラウザーウィンドウとは別に)ページのソースコードを個別に分析し、音声合成または触覚ディスプレイで読み取り可能な形式で表示し、同時にハイパーテキストを介した非視覚的なナビゲーションのための多くの追加機能を提供します。

実際、ユーザーにはページのコンテンツを一貫して読む機会が与えられているという事実について話している。



問題は主観的なものであるため、正確には「シーケンス」にあります。 最新のWebデザインは、プレーンテキストなどの構造化情報から遠ざかりました。 2列、3列などで構造化を使用しました。



問題を理解するには、複数列のデザインのページを開いて、表示されているテキストを読み始め、すべてのコンテンツを完全に読むというタスクを設定します。 ヘッダーの後に、「列の内容をどの順序で読み取る必要がありますか?」という質問が発生します。本質的に、スクリーンアクセスプログラムの開発者は、シーケンシャル読み取りストリームを構築するアルゴリズムをプログラムするときに同じ問題に直面します。 もちろん、このようなプログラムのユーザーはページ要素をナビゲートする機能を備えていますが、コンテンツ全体を一目ですばやくカバーする方法はないため、読み取りストリーム内のブロックの表示順序の正確性は引き続き重要です。



たとえば、次のページを考えます。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> </title> <style type="text/css"> .header, .sidebar, .content, .footer { padding: 10px; border: solid 1px #000000; background: #FFFFFF; } .header, .footer { font-size: 24px; } .layout { margin: 15px 0; overflow: hidden; min-width: 800px; max-width: 1200px; } .sidebar { width: 100px; float: left; } .content { margin-left: 135px; } </style> </head> <body> <div class="header"> </div> <div class="layout"> <div class="sidebar"> <h2></h2> <ul> <li><a href="link1.htm"> 1</a></li> <li><a href="link2.htm"> 2</a></li> <li><a href="link3.htm"> 3</a></li> </ul> </div> <div class="content"> <h1> </h1> <p> 1.</p> <p> 2.</p> <p> 3</p> </div> </div> <div class="footer"> </div> </body> </html>
      
      





この例では、ページにヘッダーとフッターがあり、それらの間に2つの列があります。 左の列はサイトのセクションがあるサイドパネルで、特定のサイズがあり、右の列にはメインコンテンツが含まれ、その幅はブラウザーウィンドウの幅に基づいて自動的に設定されます。 さらに、これは「ゴム」レイアウトであるため、両方の列の共通ブロックを圧縮および拡大するための特定の制限が設定され、どのスクロールバーが単純に表示されるかが決まります。 一般に、これはかなり伝統的なレイアウトモデルです。



次に、サイドバーとメインコンテンツブロックを再配置して、少し実験を行うことができます。

  <div class="layout"> <div class="content"> <h1> </h1> <p> 1.</p> <p> 2.</p> <p> 3</p> </div> <div class="sidebar"> <h2></h2> <ul> <li><a href="link1.htm"> 1</a></li> <li><a href="link2.htm"> 2</a></li> <li><a href="link3.htm"> 3</a></li> </ul> </div> </div>
      
      





コードの変更にもかかわらず、視覚的にはページはまったく同じままであり、目の見えるユーザーはこれにまったく気付かないでしょう。



それでも、前述のように、スクリーンアクセスプログラムはページのソースコードを解析し、それをストリーム表示フォームに処理するため、これらの変更は重要です。



最初の場合、プログラムは最初にヘッダー、次にサイドバー、次にメインコンテンツ、最後にフッターを読み取ります。 2番目のケースでは、最初にヘッダーがあり、すぐにメインコンテンツがあり、サイドバーと最後にフッターがあります。



したがって、スクリーンアクセスプログラムは、従来、ページのソースコードを順次解析することで取得される形式で、情報の表示順序を使用します。 これは、複数列レイアウトをレイアウトするとき、または読み上げ順序の曖昧な解釈の余地を残すコンテンツを提示する他のスキームを設計するとき、ソースコード内のブロックの順序を含むあらゆる点で有能に開発したいウェブマスターをそれに応じて構築する必要があることを意味しますページの読み取り順序の一般的な概念。 つまり、たとえば、ソースコードを読みやすくするために、サイドバーのコードをメインコンテンツブロックの下に転送するには(サイドバーはどこでも同じであり、異なるメインコンテンツを表示するためにスクロールする必要がないなど)、これは必要です。スクリーンアクセスプログラムのユーザーに対する情報の表示ロジックの違反。



All Articles