トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/239

ページの作成や編集にはユーザ登録が必要です。

アクセシビリティ配慮のタグを出力するプラグイン

  • 投稿者: A_M
  • カテゴリ: 新規
  • 優先度: 低
  • 状態: 提案
  • 日時: 2005年11月10日 13時40分07秒

 内容

次の2点を拡張します。

  1. ブラケットによるアンカータグにtitle属性を追加。
    • ページ名とタイトルを別指定することができ、title属性に自動反映(2005/12/07)
  1. ref_imageの添付画像にalt属性を追加

 パッケージ

  • _ex_wikianchor_20051110.zip
    • Ver3.5.9以前のユーザは、最新バージョンにアップデートしてください(注:FrontPage
  • _ex_wikianchor_20051206.zip(487) (Ver3.5.10)
  • _ex_wikianchor_20051207.zip(493) (Ver3.5.10 別タイトル指定)
    • ref _ex_wikianchor_20051211.zip (Ver3.5.10 別タイトル指定+現在ページへのclass属性追加)
    • _ex_wikianchor_20060117.zip(447) (同上:展開したディレクトリ名を修正)
  • _ex_wikianchor_20060407.zip(537) - 管理画面追加
    • 「Admin/Accessibility」というページを作成し、同梱のAdminMessage_euc.txtの内容でページを保存してください。(管理画面のメッセージになります/参照権限を管理者に変更して下さい)
  • plugin/_ex_wikianchor/Install.pm
  • plugin/_ex_wikianchor/AnchorTitle.pm
  • plugin/_ex_wikianchor/RefImage.pm
  • plugin/_ex_wikianchor/Title.pm(2005/12/07)
  • plugin/_ex_wikianchor/TitleCache.pm(2005/12/07)
  • plugin/_ex_wikianchor/AdminAccessibilityHandler.pm (2006-04-07)
  • plugin/_ex_wikianchor/Initializes.pm (2006-04-07)
  • plugin/_ex_wikianchor/AdminMessage_euc.txt (2006-04-07:実行には不要)

 インストール

  1. 添付ファイルを解凍し、各ディレクトリに展開してください。
  2. プラグイン設定画面で _ex_wikianchor を有効にしてください。

依存関係

本プラグインでは以下のモジュール内の関数をオーバーライドしています。

  • Wiki::HTMLParser::url_anchor()
  • Wiki::HTMLParser::wiki_anchor()
  • Wiki::HTMLParser::l_image()
  • plugin::attach::RefImage::paragraph()

これらの関数を別のパッチ等で変更を加えている方は、本プラグイン導入後に既存の変更箇所が無効になってしまいますので、本プラグインへパッチ等の変更箇所を適用する必要があります。

同類プラグインの説明(2005年12月15日 追記)

Titleを変更するためだけのプラグインとして、次のプラグインがあります。

  1. KG氏のカタログプラグイン(BugTrack-plugin/184)
    • plugin/catalog/Title.pm
  1. Kaz氏の文字装飾プラグイン(BugTrack-plugin/245)
    • plugin/word/Title.pm

共に、Wiki記法はtitleプラグインは存在しません。となっているため、両者を同時に適用する場合は、いずれかのInstall.pmのインストール処理をコメントアウトしなければなりません。$wiki->add_paragraph_plugin("title","plugin::catalog::Title","HTML");$wiki->add_inline_plugin("title","plugin::word::Title","HTML");

既に、これらのプラグインをご利用の方で、このプラグインのpagetitle機能をご利用になりたい方は、以下の手順でページの書き換えを行わずに適用することが出来ます。

  • 上記2つのInstall.pmのインストール処理を共にコメントアウト
  • 次の2つのファイルを変更する
    • plugin/_ex_wiki_anchor/Install.pm
      • pagetitle 部分を title に置換

$wiki->add_inline_plugin("pagetitle","plugin::_ex_wiki_anchor::Title","HTML");↓$wiki->add_inline_plugin("title","plugin::_ex_wiki_anchor::Title","HTML");

    • plugin/_ex_wiki_anchor/TitleCache.pm
      • get_page_titleメソッドの 89行 付近を次のように置換

if($line =~ /pagetitle\s+(.+?)\s*プラグインは存在しません。/g){ ↓if($line =~ /title\s+(.+?)\s*プラグインは存在しません。/g){

このプラグインの「別名タイトルを付けたページのタイトルをキャッシュに保存してアンカータイトルに自動出力する機能」は、Kubon氏のFSWikiについての備忘録に公開されていたパッチ(lib_Wiki_patch.diff)を参考にさせていただいております。

 利用方法

ブラケットによるアンカーの出力とtitle属性

Wikiページ名? → <a href="" title="Wikiページ名">ページ名</a>別ページ名? → <a href="" title="別ページ名">別ページ名</a>別名 → <a href="" title="別名">別名</a>

ページ内で pagetitleプラグインは存在しません。 を使用したときWikiページ名? → <a href="" title="別指定タイトル">ページ名</a>別ページ名? → <a href="" title="別指定タイトル">別ページ名</a>

画像の表示

  • 画像ファイル名をそのままalt属性で出力する場合(拡張子を外します)

ファイルが存在しません。

ファイルが存在しません。

  • 任意のalt属性を指定する場合

ファイルが存在しません。

ファイルが存在しません。

タイトルの別名指定

  • 半角英数字でページ名を命名したときにもページタイトルを別途指定できる(多数既出)
  • これを、キャッシュファイルに保存し、2重ブラケットで囲った時に別名指定したタイトルをtitle属性に表示します。

pagetitleプラグインは存在しません。

尚、pluginhelp のコメントは用意していませんので、ご注意ください

スタイルの指定方法

BugTrack-plugin/50を参考に、現在表示中のページにスタイル指定を出来るようにしています。

  • id属性ではなくclass属性(class="wikipage myself"と複数のクラスを適用する形で出力し、a.myself:link{}等で制御。)
    • 理由id(identify)はページ内に唯一であるべきだが、HTMLを自動コーディングするWikiでは制御できない為。

a.myself:link { スタイル指定 }a.myself:visited { スタイル指定 }a.myself:hover { スタイル指定 }a.myself:active { スタイル指定 }

 ライセンス

GPLでお願いします。

 更新履歴

2005-11-10 ― _ex_wikianchor_20051110.zip(463)
  • 初版リリース
2005-12-06 ― _ex_wikianchor_20051206.zip(487)
2005-12-07 ― _ex_wikianchor_20051207.zip(493)
  • BugTrack-plugin/229で実現したかった、タイトルの別名指定にも対応したバージョン。
2005-12-11 ― _ex_wikianchor_20051211.zip(445)
  • 現在表示中のページに対してスタイル制御を可能にしたバージョン。
2006-04-07 ― _ex_wikianchor_20060407.zip(537)
  • ブラケットの拡張によるtitle属性の表示を選択出来るようにした。
  • ref_imageプラグインの拡張による第3引数に NULL を指定することで、alt=""を出力できるようにした。

 その他

BBS-雑談掲示板/147でネタを振っていながら、オーバーライドの方法がよく分からずに手間取っていました。

その後、参考になるプラグインを多数公開頂き、有り難うございました。

この場をお借りしてお礼申し上げます。

 コメント

  • 早速導入して動作確認しました。特に問題ないと思います。 - hoiho (2005年11月11日 06時41分54秒)
  • _ex_wikianchor_20051211.zipのパス情報がplugin/_ex_wiki_anchorになっています。圧縮ファイルのパス情報をex_wikianchorに変更していただくと助かります。 - sige (2005年12月22日 11時18分51秒)
  • コメント有難うございます。意図するところは、プラグイン追加時のプラグイン名称が問題なのでしょうか。それとも、圧縮関連ソフトで閲覧した場合の表示上の問題なのでしょうか。前者については、 Wikiのプラグインには読み込む順序が有る とのことから、コア部分の機能をオーバーライドする際、アンダースコア(_)で開始するという手法をお手本にしています。Perlのモジュールですので、全てのファイル内のplugin::_ex_wikianchor::の部分をplugin::ex_wikianchor::とした上で、ディレクトリ名もex_wikianchor とすれば実験できますが、この場合の動作は未確認です。後者の場合ですと、アップしたファイルが意図した表現になっておりますので、違和感が有りますが、そのままご対応いただければと思います。 - A_M (2005年12月22日 12時25分56秒)
  • 解凍した際できる「_ex_wiki_anchor」というディレクトリ名を「_ex_wikianchor」に変更しないとモジュールをロードできないという話ではありませんか?私はそのようにして利用させていただいてます。 - gyo (2005年12月22日 14時43分33秒)
  • それから、各ファイルの文字コードはEUC-JPなのに改行コードがCRLFになっているので、LFにして頂けるといいのですが。 - gyo (2005年12月22日 14時45分52秒)
  • 申し訳ありません。確認が甘かったです。改行コードについても確認済みのものを再アップしました。他の拙作プラグインも改行コードの見直しが必要かもしれません(汗 - A_M (2005年12月22日 16時09分51秒)
  • sige殿のコメントが誤っていたのですね、gyo殿のコメントの意味がようやく分かりました。gyo殿の仰るとおりです。私もこんな初歩的なところでハマりましました。zipに圧縮するときのディレクトリ名を「_ex_wiki_anchor」ではなく「_ex_wikianchor」に変更しないとプラグインのインストールでこけますです。>A_M殿 - あき (2006年01月17日 01時21分39秒)
  • なるほど、_ex_wikianchor_20051207.zipで直したのに、また_ex_wikianchor_20051211.zipで同じ過ちをしてしまったのですね。 - あき (2006年01月17日 01時23分50秒)
  • 余計なアンダースコアが入っているのですね(汗)修正は本日の夜になりそうですが、対応したいと思います。今しばらくお待ち下さい。 - A_M (2006年01月17日 07時40分09秒)
  • img 要素の alt 属性は必須なので,本当はプラグインでなくて本体で実現して欲しいのですが,せめて必須とオプションを分ける意味で, img 要素への alt 属性追加と, a 要素への title 属性追加は分離できませんでしょうか。要するにすべての a 要素に title 属性が付くと少々鬱陶しいのです。また alt 属性の追加は,明示されないときはファイル名でなく「空( alt="" )」にすべきでないでしょうか。 - 321 (2006年04月05日 17時12分41秒)
  • ご意見有難うございます。出力面での仕様を再考してみたいと思います。 - A_M (2006年04月05日 19時56分47秒)
  • 現在、ローカル環境で動作試験中ですが、記法についてお聞かせ下さい。 - A_M (2006年04月05日 22時22分43秒)
  1. a要素のtitle属性の出力については、互換性も含めて次のように改変予定です。
    • これまで通り、titleを表示する場合は標準のブラケットによる記法((Wikiページ名)?(別名)
    • タイトルを無効化するときに、ブラケットの開始部に等号記号を加える記法(=(WikiPage)?=(別名)?=(別名)
  1. img要素alt属性の出力について、互換性と用途のバランスから、以下の2つの方法が考えられ、悩んでいます(互換性の兼ね合いから前者を採用するべきか)。
    1. 公開している既存の指定方法を継承し、空の属性値にする時に限りNULLを記述(代替テキストが短い場合、アップロード時にはファイル名を変更しておく事も可能)
    2. ファイル名を利用する時に代替テキスト部にFILENAMEまたはFNを記述(代替テキストを使用する場合は必ず入力が必要)
  • 1.については「分離しないなら」であるべき(つまり互換性を捨てるべき)と考えます。なぜなら a 要素の title 属性はオプションだからです。管理者または投稿者の title 属性は不要という意図を実現しなければオプションになりません。2.についてはref_imageプラグインは存在しません。であっても<img src="..." alt="">をはき出すべきという意味で,1.を支持します。

例えば「ダミーのテキスト」などの無意味な代替テキストを指定しないこと。ユーザが不快なだけでなく、これを音声や点字に変換しなければならないユーザエージェントの処理速度を低下させる。http://www.asahi-net.or.jp/%7esd5a-ucd/rec-html401j/struct/objects.html#alternate-text - 321 (2006年04月06日 11時17分55秒)

  • 有難うございます。「点字などのUAの処理速度を低下させる」事が無いように、また、プラグインのサマリに忠実な仕様を期待するということで、あえて互換性を捨て、公開したいと思います。今しばらくお待ち下さい。 - A_M (2006年04月06日 11時53分41秒)
  • 横からすみません。朝コメントしようと思ったのですが時間が有りませんでしたので、タイミングを外した感は否めませんがコメントさせて頂きます。「指摘されたから、じゃあ対応します」じゃなくて、A_M殿自身はどうお考えですか? 「対応すべきだ」だと考えますか? もし、そのようにお考えでしたらそれ以上は強く言えませんが、私は、個人的には『すべての a 要素に title 属性が付く』仕様で良いと思っています。img側も然りです。個別に指定や、出力する/しないも選べれば勿論便利ですが、シンプルな記述で面倒見の良い出力がなされるのが、Wiki本来の特徴(便利さ)であると私は考えています。ましてや、従来との互換性を捨ててまでの対応ともなると、とても賛成する気になれません。と言っても、プラグインですので、後は作成者本人のご判断にお任せします。 - あき (2006年04月06日 13時29分11秒)
  • 私としましては、管理画面でラジオボタンによる切り替えが出来るようにしたいなと。そのために時間を頂ければと考えています。非常に悩んだのですが、サマリにアクセシビリティを謳う以上、321氏の仰る仕様に近づけたいというのもありますし、、記法に変化が伴う場合、公開以来、相当数のダウンロードがあるはずですし、互換性を保つ部分は必要かなと感じています。 - A_M (2006年04月06日 16時36分24秒)
  • 昼頃のコメントは、言葉足らずであったことをお詫びいたします - A_M (2006年04月06日 16時38分17秒)
  • いえいえ、私もサマリが『アクセシビリティ配慮のタグを出力する…』なので、それをとことんまで追求したい、とお考えなのか、とも思いました。ただ、現状の仕様は、本家に搭載されるべきであった機能(今後採用されても不思議ではないような機能)だとも感じています。例えば、<img>タグのalt属性は、HTML4.01では必須のはずですよね? そういった意味で、本家同然の機能という位置付けで考えていました。ただ、昨日今日の展開を見ていて、「プラグインだから、使用方法が複雑になったり、互換性が保てなくなったりしてもそれは仕方がないことなのかな?」とも感じました。 - あき (2006年04月06日 20時03分45秒)
  • 互換性を維持した運用も出来るように、管理画面を作成しました。記法の独自拡張についても選択できるようにしてあります。但し、フォーマットプラグインへの対応は未確認ですので、機能提供しつつも非推奨という微妙な機能です。 - A_M (2006年04月07日 09時22分39秒)
お名前: コメント: