web-dev-qa-db-ja.com

SVGドキュメントはカスタムデータ属性をサポートしていますか?

HTML5では、要素の名前がdata-などの<p data-myid="123456">で始まるXML属性に格納された任意のメタデータを持つことができます。これもSVG仕様の一部ですか?

実際には、この手法は多くの場所のSVGドキュメントでうまく機能します。しかし、公式のSVG仕様の一部であるかどうかを知りたいと思います。なぜなら、このフォーマットはまだ若く、ブラウザー間、特にモバイルではまだ多くの非互換性があるからです。したがって、コードをコミットする前に、将来のブラウザがこれをサポートすることに収束することを期待できるかどうかを知りたいと思います。

私は、ワーキンググループのメーリングリストから このメッセージ が「彼らがサポートすることを期待している」と言っています。これは公式になりましたか?

76
Leopd

他の回答は技術的には正しいものの、SVGがdata-*。 SVG 属性とタグを許可 は、既存のものと競合しない限り含まれます(言い換えると、名前空間を使用する必要があります)。

この(同等の)メカニズムを使用するには:

  • つかいます mydata:id の代わりに data-myid、 このような: <p mydata:id="123456">
  • 次のように、SVG開始タグで名前空間を定義してください:<svg xmlns:mydata="http://www.myexample.com/whatever">

EDIT:SVG2 、現在のW3C候補勧告(2018年10月4日)、 support data-直接 (名前空間なし、HTMLと同じ)。ただし、サポートが普及するまでには時間がかかります。 これを指摘している に@cvrebertに感謝します。

114
johndodo

data-*属性 はHTML5の一部です。一般的なXML属性ではありません。

現在のSVG W3C勧告は、 SVG 1.1 (2011-08以降)です。 属性リスト で確認できるため、この属性は許可されません。

same は、 SVG 2 Working Draft (2012-08以降)の場合です。 更新(2015)が意図しているようですdata-*属性を SVG 2 (現在も作業中ドラフト)。

30
unor
17
cvrebert

より一般的なメカニズムがあります。

svgは、他の名前空間からの任意のxmlを含む可能性のあるdesc要素をサポートします。依存IDまたはrefid属性によって、この要素のインスタンスまたは独自の名前空間の子ノードをリンクします。

これは仕様の関連部分(5.4) です。

9
collapsar