ユーザビリティを考慮したtarget windowの開き方

以前書いた【XHTML+CSSに足りない5つのコト】と言うエントリーの中でa要素のtarget="_blank"の必要性を書いた所、「それはユーザーの自由である。製作者側でコントロールする問題ではない」とのご意見を多数いただきました。

この意見に対してはおおむね同感します。

a要素のtarget属性の_blankに関しては必要なユーザーも必要でないユーザーもいます。

ただ一点同意しかねるのは、すべてのユーザーにその自由(リンク先をターゲットで開くか、セルフで開くかの選択)が与えらているかというと、そんな事はない。

リンク先のターゲットコントロールに関しては、ある程度インターネットに熟知したユーザーにのみ可能な操作なのだから。

サイト制作者として「すべてのユーザーがwindowのターゲットコントロールを簡単に出来るサイトならユーザビリティが高いのでは?」と感じたのでそれを実装するスクリプトを作ってみました。

javascriptソース

function targetControl(mode) {
	if(!document.getElementsByTagName || !mode) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("class") == "blank"){
			anchor.target = mode;
		}
	}
}
window.onload = function(){
	targetControl("_blank");
}

(x)htmlのa要素に記述するソース

<a href="http://blog.webcreativepark.net/" class="blank">リンク先名</a>

(x)htmlのユーザーがターゲットウィンドウをコントロールする所

<input type="button" onclick="targetControl(mode='_self')" value="リンクをselfで開く" />

サンプルページ

これで基本的にはclass属性に"blank"と設定しているa要素のリンクはすべて別ウィンドウで開きます。
しかし、『リンクをselfで開く』ボタンが押された場合はa要素のリンクはすべて同一ウィンドウ上で開きます。

問題点は『リンクをselfで開く』という記述が初心者に激しくわかりにくい所。
なんてなんて書いたらわかりやすいでしょうかね?

個人的な意見

以前、このスクリプトと同じような感じで『(x)html1.1や(x)html1.0 strictでターゲットブランクで開くスクリプト』が話題になった事がある。

その多くがターゲットブランクをjavascriptのonclickイベントで実装する物だったのですが、それでは目的が正しい(x)htmlを書くことになっていて、なぜtarget="_blank"が推奨されないかというものに考慮されていなかった用に感じる。(私も当時はそうやって実装していたのですが)

ブラウザでtarget="_blank"の機能を切っていても_blankで開くサイト・・・・・
そういうのって制作者の自己満足ですよね。

関連エントリー

空欄チェック
フォームへの入力を操作する
AjaxやJavaScriptのライブラリー
CSS Nite in OSAKA エコなWebデザイナーになろう by 長谷川恭久
javascriptを読み込みと同時に実行する方法

スポンサードリンク

«web標準の日 | メイン | 伝わる、WEBテキストのつくりかた -知っておきたい文字情報デザインテクニック»