適用 (対象)
- サーバーサイドのスクリプト言語全て
- 制限時間に関する達成基準の例外を満たさないコンテンツ
これは達成基準 2.2.1: タイミング調整可能 (失敗) に関する達成方法である。
解説
開発者は、サーバーサイドのスクリプト言語を使って、標準ではない 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\" \"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"); out.println("<html><head><title>Redirect</title></head><body>"); out.println("<p>This page will redirect you in 10 seconds.</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" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> … <!--HTML code for content that is shown before the redirect is triggered-->
参考リソース
参考リソースは、あくまでも情報提供のみが目的であり、推薦などを意味するものではない。
- Hypertext Transfer Protocol -- HTTP/1.0 (IETF Request for Comments 1945) (plain text)
- Hypertext Transfer Protocol -- HTTP/1.1 (IETF Request for Comments 2616) (plain text)
HTTP/1.0 は Informational な RFC であることに注意する。
上記の HTTP/1.1 は RFC 2616 を参照しているが、現在の HTTP ステータスコードは RFC 7231 で更新・定義されている。
検証
手順
- 利用者が何も操作しなくても、一定期間後にウェブページが自動的に別のページにリダイレクトされるかどうかを確認する。
- そのページが、達成基準 2.2.1 タイミング調整可能のリアルタイムの例外又は必要不可欠な例外に該当するかどうかを確認する。
- ページ更新のタイミングをオフにする、延長する、又は調整する機会が利用者に提供されているかどうかを確認する。
期待される結果
- #1 の結果が真で、かつ #2 - 3 の結果が偽の場合、この失敗条件が適用され、コンテンツは達成基準の失敗となる。