*リンクを別窓で開く機能の標準実装 [#x93bd52a] -ページ: BugTrack -投稿者: [[tera]] -優先順位: 普通 -状態: 提案 -カテゴリー: 本体新機能 -投稿日: 2004-10-14 (木) 10:49:21 -バージョン: 1.4.4 **メッセージ [#t6b5c7ae] [[PukiWiki/1.4/ちょっと便利に/リンクを別窓で開く]]機能の標準実装を希望します。 XHTML1.1ではtarget属性が使えないので、それをJavaScriptで実現させた物で、PukiWiki外へのリンクを別に開きたい場合などに非常に重宝するものです。 PukiWikiとHTMLによるサイトをうまく融合することにも利用出来ます。(フレームなど) 過去の質問箱などを見ると、元々要望が多かった機能だったようです。 **参考 [#l0e0602c] -[[PukiWiki/1.4/ちょっと便利に/リンクを別窓で開く]] -[[org:質問箱/373]] -[[作者サイトの「pukiwikiのリンクを別窓で開く」>http://inagi.himitsukichi.com/~aozora/cgi-bin/pukiwiki/pukiwiki.php?PukiWiki%A4%CE%A5%EA%A5%F3%A5%AF%A4%F2%CA%CC%C1%EB%A4%C7%B3%AB%A4%AF]] ***以下は1.3系の話題 [#bab31201] -[[org:欲しいプラグイン/38]] -[[org:質問箱/108]] -[[org:質問箱/174]] ---- -なぜ そんな便利な機能がXHTML1.1で無くなったのかを考えてみられましたか? [[アクセシビリティ>Accessibility]]という言葉を御存じですか? -- [[merlin]] &new{2004-10-14 (木) 11:08:25}; --「誰にでも見れる環境を作ること」で解釈はあっていますでしょうか?フレームをなるだけ排除するということでこの機能がXHTML1.1から無くなったということでしょうか?別窓に開くことがアクセシビリティにどう繋がるのか、無学ゆえ、教えていただけるのでしたら助かります。 -- [[tera]] &new{2004-10-14 (木) 11:35:04}; ---キーボード一つで見ることができるウェブサイトを作るという部分でtarget属性が適さないと判断された結果でしょうか?~ それとも、もっと単純に「JavaScriptを使うということ」自体が問題とされているのでしょうか?~ 単に、別ウィンドウを開くこと自体がアクセシビリティに反しているということでしょうか? -- [[tera]] &new{2004-10-14 (木) 12:00:56}; ---そういうことでしたら、提案を取り下げるべきでしょうか? -- [[tera]] &new{2004-10-14 (木) 12:04:13}; ---XHTML1.1から消された(正確には外部モジュール化された)理由はHTMLで実装するべき機能ではないからです。(X)HTMLはHyperText Markup Languageであって、意味による区別(<ins><del>タグとか)を行う目的にのみ絞られた設計が進められています。JavaScriptによって対応する事も可能ですが、JavaScriptでは設定がoffになっている場合には動作しない、という問題も発生します。勿論、キーボードで扱えなくなる事も問題ですが、もっと単純にXHTML的に推奨されていないわけです。ですから、XHTMLでtarget属性がモジュール化されているのと同様に、PukiWikiでも拡張機能として扱うのが妥当だと思われます。 -- [[Ratbeta]] &new{2004-10-14 (木) 13:44:39}; ---JavaScriptで対応する場合は、対応していない環境でも正常に動作するよう考慮する必要が有りますから…。関連:BugTrack/578 -- [[Ratbeta]] &new{2004-10-14 (木) 13:48:44}; -アクセシビリティガイドラインの10.1に載っていますが、実際には、ユーザビリティに属する概念から新規ウィンドーを開く属性は廃止方向です。理由は、ナビゲーションを失うということと、ウィンドーを新規に開くかどうかは、HTML側の問題では無くユーザー(閲覧者)に任せられるべき問題だからです。((最近話題になっているSEOに関しても良くないですけど)) 無学でも、文字が読めない((話の本筋とは関係ありませんが、「文字が読めない、識字できない」の意味でここに書かれていた言葉は差別語・不快用語にあたりますので勝手ながら書き換えさせていただきました。参考リンク:[[放送禁止用語一覧>http://page.freett.com/storyland/kikaku/kinshi/]] -- arky &new{2004-10-14(木) 15:37:07};))のではないのですから [[Accessibility]]のページに載っているリンクなどに目を通されたらいかがかと思います。 -- [[merlin]] &new{2004-10-14 (木) 14:11:16}; --さしでがましいことをしてすみません。 -- [[arky]] &new{2004-10-14 (木) 16:02:41}; ---あっ、すみません。さしでがましくは無いですよ。Wikiなんですから -- [[merlin]] &new{2004-10-14 (木) 17:38:27}; -標準での実装は無理だとしても、今のように複数のファイルを改造するではなく、固有のプラグインなどの外部モジュールを置くことのみでこれらの機能が実現できればかなり便利でしょうね。モジュールを入れた人のみの拡張機能で、入れてない人には関係の無いというような‥‥。 -- &new{2004-10-14 (木) 18:54:42}; -(今日はみんな疲れているんだ。そうに違いない) そうですね。ちょうど数日前から、パラグラフ編集の副産物である「キャンセル」ボタンを本体に盛り込もうとしているところですが、今回の件についても、それぞれの要素を複数の提案に分解して行くと、もう少し話が進むと思いますよ :) -- [[henoheno]] &new{2004-10-14 (木) 21:05:30}; -ということで、上の話題を前提にして、「PukiWikiに(追加で)JavaScriptを盛り込む」、あるいは「より簡単に盛り込める」様にするために必要な要素、あるいはPukiWiki本体の進化などについて意見のある方もぜひコメントして下さい。題材はコレ(この件)で。 -- [[henoheno]] &new{2004-10-14 (木) 21:08:23}; -それと、skin/trackback.js が寂しそうにしているので、話に混ぜてやって下さい。 -- [[henoheno]] &new{2004-10-14 (木) 21:18:47}; -なぜXHTML1.1で無くなった機能が再三要望として上がるか、という観点もあると思いますよ。以前の議論も一応読んではいましたが、開発者側あるいはテクニカル側からはXHTML1.1 validかつアクセシビリティの業界動向にあわせることが重要というのは、大義としては、わかります。ただ、私の例でいうと、サイトのメインユーザが自分自身であり、その他のユーザを含めてもかなり限定した範囲しか考えなくてよい状況なので、アクセシビリティの優先度は限りなく低いです。極論すれば自分さえ使いやすければよいサイトもあると思うのです。他のサイト管理者の方も、少人数やブログ的用途で使われている場合は、近い状況なのではと想像しています -- [[jitte]] &new{2004-10-14 (木) 23:05:33}; -ボランティアがベースのPukiWiki開発者の方々が、やりたい方向にイニシアチブを取って進んでいくのは当然のことで、ケチをつけるつもりは毛頭ないのですが、そういった思惑や業界動向とは別のところで、さまざまな用途でPukiWikiが気に入られて、使われるようになった、ということではないでしょうか。プラグインかiniファイルで切り替える程度でよいので、本体に組み込んでいただくことを、PHPは書けないけれどPukiWikiをこよなく愛する''ユーザとして''強く希望します。 :) -- [[jitte]] &new{2004-10-14 (木) 23:06:09}; --[[org:自作プラグイン/opf.inc.php]]とか・・・ -- [[teanan]] &new{2004-10-14 (木) 23:07:56}; --書き方まずかったですね。opfのことは知っていた((作者は「pukiwikiのリンクを別窓で開く」と同じ方ですし))のですが、私の場合は、自動で別窓になって欲しいのです。実装方法の例としてプラグインと言ってしまいました。opfで十分という人もいるでしょうね。 -- [[jitte]] &new{2004-10-14 (木) 23:38:33}; -jitteさんに同意。でも自分で書け!って言われるのよねー。それが敷居だって。 -- &new{2004-10-15 (金) 07:30:48}; --無くて誰も作ってくれそうにない場合は、自分で作るしかないでしょうね。 -- &new{2004-10-15 (金) 07:55:40}; -正直な所、これだけ話が長くなっていると思っていませんでした。 (^^; 私は技術的なことはよく分からない一介のユーザです。でも、PukiWikiの便利さをこよなく愛する一人です。「こんなこといいな、出来たらいいな」の気持ちでついこのようなことを書いてしまいましたが、このような話になるとは思っていませんでした。 -- [[tera]] &new{2004-10-15 (金) 09:01:47}; --アクセシビリティという言葉自体は存じておりました。しかしそれについての知識を充分深めることはしておりませんでした。ここの方々のように広く深く知識をもたずにここに書き込んだことを悔いております。一介のユーザは無謀な欲求は持たずに、標準のまま使うのが一番なのかもしれません。 :( ただ、技術論を展開することが出来ないユーザがいること、またそういうユーザもPukiWikiを愛していることをご理解いただければ幸いです。もう少し勉強して出直します。 -- [[tera]] &new{2004-10-15 (金) 09:07:23}; -XHTML Not Validでいいのであれば、下記の1行を変えるだけでいいんですけどね。Validかどうかなんてどうでもいいユーザも多いことは確かなので、このような解があるのもありかと思いますが・・・ -- [[teanan]] lib/make_link.php 338行目付近 - return "<a href=\"{$this->name}\">{$this->alias}</a>"; + return "<a href=\"{$this->name}\" target=\"_blank\">{$this->alias}</a>"; --今後 XMLを厳密解釈するブラウザが増えてくると思われます。それだけだとだめでヘッダもちゃんとしておかないとダメでしょう -- [[merlin]] &new{2004-10-15 (金) 09:26:29}; --でもmake_link.phpのその部分を改造するのでは、全部のリンクが_blankで開くことになるのでは?当該改造では、URIの種類によって開く動作を設定するようになっていますが。 -- &new{2004-10-15 (金) 09:54:00}; --URLで書かれたものについて別画面で開きます(BracketNameは同じ画面に表示)。もちろん、[[PukiWiki/1.4/ちょっと便利に/リンクを別窓で開く]]よりも低機能であることは承知していますが、これだけでも事足りる方は多いはず。要は、機能を絞ればPHPが分からない方でも簡単にパッチ当てできる方法がありますよ、という例をあげたかったのです。((つまり、使いたい人は自分でパッチ当ててね、と (^^; )) -- [[teanan]] &new{2004-10-15 (金) 10:57:00}; ---XHTML Not Validでいいのであれば(拘らなければ)そういう方法の方が早いですね。 -- &new{2004-10-15 (金) 11:20:02}; -この機能は、WindowsのExploreでの動作と同様にブラウザ側でもつべき機能でしょう。すなわち、Websiteから新しい窓開けといっても、ブラウザの設定如何によって 新しい窓で開かれたり、開かなかったり、既存の窓で開いたりを選択できるような形ですね。W3Cの勧告では、そういった機能がブラウザに持たされるまで target要素は無くす方向と言っています。では、ブラウザが対応するまでPukiWikiではどうするのかまたその実装をどうするか ってことになりますね。技術的には、CookieとJavascriptで実現できますが、もっと良い解はないのかな? ((うちでは、どちらも普段は切られていたりする (^^; )) -- [[merlin]] &new{2004-10-15 (金) 10:34:09}; -PukiWikiは、多数がそうだからそれに対応するという方向よりは、みんな 幸せになろうよって方向で開発されていると思っています。なので、多数がそうだからそうするっていう考え方は無く、いろいろな場合に適用できるようにしていく方向だと思います。ただ、開発パワーは限られていますので優先順位の問題かと思います。 -- [[merlin]] &new{2004-10-15 (金) 10:43:09}; -CookieとJavaScirptを用いる事は(それによってXHTML Not Validにならないのであれば)いいと思います。勿論、ブラウザの対応を見て行く必要が有りますし、mobile環境を考慮する必要が有ります。開発はできるだけXHTML Validでやってほしい、というのが(XHTML Validにこだわる)私の考えです。方法としては、ユーザ定義を用いてtarget属性を表示することもできますね。ユーザ定義なら、導入も簡単ですし、Valid派はそれを削除するだけで済みますし…(でも既存のリンクとの共存が難しいですね…)。 -- [[Ratbeta]] &new{2004-10-15 (金) 18:28:30}; -JavaScript/target/Cookie関連の話は別の所にしませんか?このページだけでは要点の整理なども出来ませんし、このページに合わない話題も増えてくるはずですので…。 -- [[Ratbeta]] &new{2004-10-15 (金) 18:30:26}; -Cookie&Javascriptは XHTML Validのまま実装できると思います。窓を新規に開くのをサーバ側で指定した場合に、ユーザ側でどうするかを選択する画面が最初に出て、その値はCookieとしてユーザ側が持つ。それにしたがって Javascriptで窓を開くというような実装を考えています。問題は Cookieの期限ですけど.. どうかなぁ? -- [[merlin]] &new{2004-10-15 (金) 21:21:06}; -一度Cookieで開くよう設定してからJavaScriptがoffにされたらどうしましょう?(^^; また、"このリンクは新規ウインドウで開きたいが、こっちのリンクは…"というのも出て来るでしょうから…。umm,..(--; -- [[Ratbeta]] &new{2004-10-15 (金) 22:02:37}; #comment