2008年2月13日
結局、target="_blank"で良いんじゃ?
ここのところ、公私共にサイトを作っていた。特に何も参考にせず、コピペもせず、clearfixをぱぱっと書けたのがちょっと成長かな、と思ってみたり。
てことで、作ったサイト。まだ作りかけの感がぬぐえません。もうちょっと飾り気をつけないとね。
一部DreamWeaverを使っていたわけですが、案外DreamWeaver上のブラウザが役に立たなかったので、機能としてはテンプレート機能を活用したくらい。基本エディターモードだし。
最近作っていたWebアプリケーションの中で、印刷画面を別窓表示させたい部分があって、ちょっと別窓について調べてみた。最近ポップアップブロックとか結構鬱陶しいじゃないですか。
別に社内で使う分にならまだしも、お客様が使用中にブロックされたりしたら洒落にならないので。
別窓を開かずに、ページ遷移の中できっちりコンテンツを見せられるのが優れているってのは正しくも有り、理想論。
なんか以下のように書いて、javaScriptでイベントハンドラ設定しておいて、リンクがクリックされたら、別窓で表示されるようにして、javaScriptがオフ環境の人でもリンクが辿れるみたいなのが、良いのかなぁとか思っていたら、見事、Googleツールバーに弾かれました。
<a href="hoge.html" class="newwin">hoge</a>
Googleツールバーの初期状態はかなりヒステリックで、"window.open()"が絡んでいると、ほぼブロックしてくると言う徹底ぶり。使っているうちに、ホワイトリストが適正に設定されてきて、そんなにブロックはしなくなるみたいだが、ホワイトリストは自分で設定できないみたいだしね。
結局、target="_blank"が良いんじゃないかとか思いました。target属性が非推奨だからといって、javaScriptで無理やり実装しようとして、独自拡張が乱立して更に訳わかんない事になってたんじゃ本末転倒です。はてブなんかはtarget="_blank"を使ってますね。
実際、別窓で開かせたいと言う製作者側の思惑だけでなく、別窓で開いて欲しいと言うユーザーも居る訳ですよ。わざわざ右クリックでコンテキストメニューを表示して「新しいウィンドウで開く」だなんて自分で選ぶよりかは、自然に適正に別窓が開いてくれるほうがありがたかったりする訳ですよ。
ホイールクリックで別窓表示されるように設定すれば問題ない、とか言うかもしれない。しかし、それくらいの設定が出来るくらいのヘビーユーザーなのであればそっちが逆に、target="_blank"を別窓で表示しない設定にすれば良い。実際Firefoxは標準でそういう設定が出来るようになっている。
だから、別窓で表示させたい製作者側は、target="_blank"で表記を統一し、別窓が嫌いなユーザーはtarget="_blank"を別窓で開かないように設定すればよい。それで万事解決だと思う。
ちなみにHTML5では、iframeなんかで利用する関係で、target要素は非推奨じゃ無くなったようですね。
また、今回仕事で作ったWEBアプリケーションでは、印刷画面をCSSで綺麗に実装するのが肝だったのですが、各ブラウザの画面上での画像縮小表示が貧弱なのはどうにかならんのか、とか思いました。
印刷前提だと、画面上ではサイズが大きめの画像を縮小して表示することになり、そうすると画面上で見たときの汚いこと。PDFとかに書き出しちゃえば、問題ないんだけどね。
そういえば、imgタグのwidth,height属性が推奨なのも謎。ネットワーク負荷の観点からすれば、あったほうが良いのかもしれないけど、そのwidthやheightって、mediaがscreenなのを前提としたときのサイズに過ぎないじゃんと言う。しかもそれって、CSSで指定したほうが良いよねっていう。
HTML5ではimg要素のalt属性が必須じゃなくなっていて、議論になっているようです。それは私もどうかと思います。飾り画像なんてCSSで配置すれば良いのだから。ただ、そういうことから窺えるように、理想を追いすぎて発展性の無いxhtml1.1とは違って、HTML5は結構現実に即した仕様になっているようですね。
canvasタグとかかなり面白そうなのですが、更に書くと止まらなそうなので、ここでおしまい。