😸

IIIFアイコンのドラッグ&ドロップ対応について

2022/09/22に公開

背景

IIIF(International Image Interoperability Framework
)のアイコン(具体的には、IIIFのマニフェストURL)は、多くのIIIF対応ビューアにおいて、ドラッグ&ドロップによるロードに対応しています。

ただし、以下のモジュールによって表示するIIIFアイコンについては、ドラッグ&ドロップができない、というフィードバックをいただきました。

https://github.com/omeka-j/Omeka-S-module-IiifViewers

この原因について、以下のページなどを参考に調査しました。

https://zimeon.github.io/iiif-dragndrop/

その結果、以下のようなHTMLの記述が必要なことがわかりました。

<a href="default_target?manifest=manifest_URI&canvas=canvas_URI">
  <img src="iiif-dragndrop-100px.png" alt="IIIF Drag-n-drop"/>
</a>

上記のパターンに合致していないことが、上述したモジュールでドラッグ&ドロップができない不具合の原因でした。

この記事では、この対応方法について記述します。

対応方法

具体的には、以下のマニフェストURLを例とします。

マニフェストURLの例: https://omekas.aws.ldas.jp/sandbox/iiif/2/2/manifest

そして、これまでは以下のように、aタグのhref属性に、IIIFマニフェストのURLのみを与えていました。

<a href="https://omekas.aws.ldas.jp/sandbox/iiif/2/2/manifest" title="IIIFマニフェスト" target="_blank">
	<img style="height: 24px" src="https://omekas.aws.ldas.jp/sandbox/files/asset/iiifviewers632bf7d736e3b.svg">
</a>

上記を以下のように修正する必要がありました。

<a href="https://omekas.aws.ldas.jp/sandbox/iiif/2/2/manifest?manifest=https://omekas.aws.ldas.jp/sandbox/iiif/2/2/manifest" title="IIIFマニフェスト" target="_blank">
	<img style="height: 24px" src="https://omekas.aws.ldas.jp/sandbox/files/asset/iiifviewers632bf7d736e3b.svg">
</a>

アイコンをクリックした際に、マニフェストをダウンロードできる挙動は同じですが、後者では、他のIIIF対応ビューアへのドラッグ&ドロップに対応できます。

href属性にマニフェストURLを2回記述する点が少し冗長ですが、Universal ViewerやIIIF Curation Viewerでも同様の記述がなされていました。

このように?manifest=manifest_URIの部分がロードに使用されることが多いことから、その前のdefault_targetの部分は影響しないことが多いこともわかりました。

そのため、IIIFアイコンだけでなく、以下のようなURLが付与されることが多いUniversal ViewerやIIIF Curation ViewerのURLおよびアイコンについても、他のIIIFビューアにドラッグ&ドロップできることが確認できました。(恥ずかしながら、これまではdefault_targetの部分がIIIFマニフェストのURLである必要があると思っていました。)

UV: https://universalviewer.io/examples/uv/uv.html#?manifest=https://omekas.aws.ldas.jp/sandbox/iiif/2/2/manifest

ICV: http://codh.rois.ac.jp/software/iiif-curation-viewer/demo/?manifest=https://omekas.aws.ldas.jp/sandbox/iiif/2/2/manifest

まとめ

IIIFアイコン(IIIFのマニフェストURL)をサイトに設置する際の、ドラッグ&ドロップへの対応のお役に立てば幸いです。

Discussion