プロジェクト ユー ディー オー エヌ 概要へ
アルファサードでは, プログラマ/エンジニア/Webデザイナーを募集しています (東京・大阪) .
  1. How-To

Project UDON

Home > How-To > アクセシブルなHTML作成の実際 (20のTips) > ポップアップウィンドウ

5.ポップアップウィンドウ

ユーザーを混乱させない

Web Contents Accesibility Guidlines1.0には、ユーザーエージェントで新しいウインドウを開かない設定ができるようになるまでは、ユーザーに知らせることなしに新しいウインドウを開いたり現在のウインドウを変更しないようにする。[優先度2] とあります。

これは「ガイドライン10. 暫定的な解決策をとる」の中のチェックポイントとして取り上げられています。最近のユーザーエージェントには自動ポップアップ等をブロックする機能がついたものがあります(主に広告対策のため)。

Checkpoints:

10.1 Until user agents allow users to turn off spawned windows, do not cause pop-ups or other windows to appear and do not change the current window without informing the user. [Priority 2]
For example, in HTML, avoid using a frame whose target is a new window.

ポップアップウィンドウでは、ガイドラインにもあるように、ユーザーにいかに知らせるかが問題になります。
また、当然ですがScriptが動作可能でなければ情報にアクセスできないような実装は好ましくありません。

広告をスキップ

例-1(混乱を招く可能性が高いポップアップウィンドウ)

HTMLソース

(JavaScript - すべての例に共通)

<script type="text/javascript">
function openWin(theURI) {
 PopUpWin=window.open(theURI,'theWin','scrollbars=0,
 width=250,height=320,resizable=1,directories=0,
 toolbar=0,status=1,location=0');
 PopUpWin.focus();
}
</script>

(HTML)

<p>
 <a href="#" onclick="openWin('05data/next.html');">
    リンクテキスト</a>
</p>
  • 予告なく新しい別のウィンドウを開く。
  • キーボードだけでアクセスできない(Tabキーで選択し、Enterキーをプレスしても動作しない)。
  • Scriptが動作しない環境では動かない。

例-2(a要素のtitle属性を用いてユーザーに予告)

HTMLソース

<p>
 <a href="#" onclick="openWin('05data/next.html');"
  title="新しいウィンドウを開きます">
  リンクテキスト
 </a>
</p>
  • 新しいWindowを開くことについてtitle属性で予告した。
  • title属性を解釈できないユーザーエージェントもあることに注意。

例-3(マウスに依存しない)

HTMLソース

<p>
 <a href="#" onclick="openWin('05data/next.html');"
  onkeypress="openWin('05data/next.html');"
  title="新しいウィンドウを開きます">リンクテキスト
 </a>
</p>
  • onclickイベントにあわせてonkeypressイベントでも動作するようにする。
  • tabキーでフォーカスを移動し、Enterキーで動作させることができる。

例-3(Scriptに依存しない)

HTMLソース

<div>
<noscript>(新しいウィンドウを開きます→)</noscript>
 <a href="05data/next.html"
  onclick="openWin('05data/next.html');return false;"
  onkeypress="openWin('05data/next.html');return false;"
  title="新しいウィンドウを開きます" target="_blank">
  リンクテキスト
 </a>
</div>
  • a要素のhref属性で移動先を指定した。
  • Scriptが動作した時に元のウィンドウが移動しないよう、Scriptの最後に return false; を加えた。
  • Scriptが動作しない環境でも情報にアクセス可能になる。
  • Scriptが動作しない環境でも新しいウィンドウを開きたい場合には target属性(非推薦 - XHTML1.1では廃止された属性)で指定する。
  • Scriptでウィンドウのサイズを指定できない場合は、必ず新しいウィンドウを開くことを予告する。全画面表示している場合等、背面に回ったウィンドウを見失うことがある。

リンクテキスト

Tips
  • [14] 新しい(別の)ウィンドウを開く場合にはユーザーに予告する。
  • [15] onclickを指定する場合はonkeypressをあわせて指定する。
  • [16] target属性(非推薦)で新しいウィンドウを開く場合は必ず予告する。

Home

©2003 Project UDON. Produced by Alfasado, Inc.
作成日:2003-11-03T08:35+09:00/更新日:2007-07-27T22:15:44+09:00