miChecker:『自動的にページをリダイレクトすることは避けてください (<meta http-equiv="Refresh">の利用は避けてください)』
検出理由
「問題あり」として検出される項目です。
<meta http-equiv="Refresh">を用いた画面の書き換えが行われ、時間が0秒以外の時に検出されます。ただし、miChekcerをローカルで実行する場合では、すぐにリダイレクトされてしまいリダイレクト後のページを検証することになるため、この問題はあまり検出されません。miCheckerを検証エンジンに持つクラウドサービス等では検出されることがあります。
根拠
利用者によっては画面に書かれた文字を読むことに時間を要することがあります。特に音声ブラウザの利用者においては、キーボードで操作し読み上げて内容を聞き取るため、黙読よりはどうしても時間がかかります。もし、黙読にかかる時間をもとに画面書き換えの時間を決めていたとしたら、おそらく、利用者によってはいつまでたっても情報を得られなくなります。
よく見かけるのは404ページにおいてです。一定時間、urlが変わったことを表示し、その後、リダイレクトするパターンです。
修正方針
遷移は自動的にさせず、利用者の指示を待って移動するようにします。利用者によっては、その間にブックマークを修正するかもしれませんし、別のアクションをとるかもしれません。あるいは、次ように間髪入れずリンクするようにします。
<meta http-equiv="refresh" content="0,(url)">
補足
urlが省略されている場合は周期的なリロードが行われることを意味します。この場合も同じ問題が発生していることになりますので、miCheckerは次の指摘を行います。
2.2.1 『周期的にページのリロードを行う事は避けてください (<meta http-equiv="Refresh">の利用は避けてください)』
関連する達成基準、達成方法
- 達成基準 2.2.1: タイミング調整可能
- 達成基準 2.2.4: 割り込み
- 達成基準 3.2.5: 要求による変化
- 達成方法 F40: 達成基準 2.2.1 及び 達成基準 2.2.4 の失敗例 - 制限時間付きの meta 要素リダイレクトを使用している
- 達成方法 F41: 達成基準 2.2.1、達成基準 2.2.4、及び 達成基準 3.2.5 の失敗例 - ページを再読み込みするために、meta 要素リフレッシュを使用している
- 達成方法 G76: 自動的に更新する代わりに、利用者がコンテンツの更新を要求するメカニズムを提供する
- 達成方法 G180: 利用者がデフォルトの制限時間を 10 倍に設定できる手段を提供する
- 達成方法 G198: 利用者が制限時間を解除するための手段を提供する
- 達成方法 H76: クライアントサイドで瞬間的にリダイレクトするために、meta 要素の refresh を使用する
- 達成方法 SVR1: クライアントサイドではなく、サーバサイドで自動リダイレクトを実装する
(他のテクニックは「miChecker対策テクニック集」に整理されています。)