WCAG 2.0 達成方法集

Skip to Content (Press Enter)

-

F58: 達成基準 2.2.1 の失敗例 - タイムアウト後にページを自動的にリダイレクトしているために、サーバサイドの実装方法を使用している

達成方法に関する重要な情報

これらの達成方法(参考)の使用法及び、それらがWCAG 2.0 達成基準(規定)とどのように関係するかに関する重要な情報については、WCAG 達成基準の達成方法を理解するを参照のこと。適用(対象)セクションは、その達成方法の範囲について説明しており、特定の技術に関する達成方法があるからといって、WCAG 2.0 を満たすコンテンツを作成する際に、常にその技術が使用可能であるわけではない。

適用(対象)

これは、次の達成基準に関連する失敗例である:

ユーザエージェント及び支援技術によるサポート

F58 に関するユーザエージェントサポートノート (英語)を参照のこと。

解説

開発者は、サーバサイドのスクリプト言語を使って、標準ではないHTTPヘッダ「Refresh」を、タイムアウト(単位:秒)及び指定されたタイムアウト時間後にリダイレクトするURIとともに指定することができる。もし時間間隔が短すぎると、全盲の人はスクリーンリーダーでページを読み終わらないうちに、予期せずページが更新されてしまい、スクリーンリーダーがページの先頭から読み上げてしまう。目の見える利用者も、予期しないリフレッシュによって混乱させられる。

HTTPヘッダは、Refresh: {秒で表された時間}; url={新しい場所のURI}のように設定する。URIを省略することも可能で、周期的にページを更新し続けることになる。これも同様の問題を引き起こす。この場合に設定されるHTTPヘッダはRefresh: {秒で表された時間}となる。

事例

失敗例 1

次の事例は、時間によるサーバサイドのリダイレクトがJavaサーブレット又はJavaServer Pages(JSP)により実装されているため、不適合である。

コード例:


public void doGet (HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
        response.setContentType("text/html");
	PrintWriter out = response.getWriter();
	response.setHeader("Refresh", "10; URL=TargetPage.html");
	out.println("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
	 \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
	out.println("<html><head><title>リダイレクト</title></head><body>");
	out.println("<p>このページは10秒後にリダイレクトします。</p>");
	out.println("</body></html>");
  }

失敗例 2

次の事例は、時間によるサーバサイドのリダイレクトがVBScriptを伴ったActive Server Pages(ASP)により実装されているため、不適合である。

コード例:


 <% @Language = "VBScript" %>
 <% option explicit 
 Response.Clear
 Response.AddHeader "Refresh", "5; URL=TargetPage.htm"
 %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
 …
 <!--リダイレクトが実行される前に表示されるコンテンツのHTMLソース-->

参考リソース

この参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。

検証

チェックポイント

  1. ウェブページが描画された際、利用者の行動を伴わず、一定時間後に自動的に他のページへリダイレクトされる。

判定基準