HTML5、”use要素”とhref属性の組み合わせによるエラー

W3Cの「Markup Validator」では、現段階では、use要素の中にhref属性を使うことができません。というエラーが出ます。

しかし、いろいろ調べてみたら、エラーと判定されてしまうけれども、しばらくこのままで様子を見た方がよいと判断し、そのままにしておくことにしました。

use要素とhref属性の組み合わせエラー

エラーの内容は、Attribute href not allowed on element use at this point.というもので、翻訳すると

現段階で、use要素上にhref属性は入れられません

ワードプレス、Support、Twenty Seventeen html validation errorsによると、
href=”#icon-hashtag”の部分を削除して、xlink:href=”#icon-hashtag”だけを残せばOKとのこと。

但し、後のコメントを読んで、敢えてこの部分のエラー修正はしない事にしました。

ワードプレス、Support、David A. Kennedy関連コメント

the offending markup is related to how Twenty Seventeen uses two methods to link to a SVG. One method is from version 1.1 of the SVG spec, and the other from version 2. We used both because of the way current browsers support one and not the other. It’s valid HTML though, even if some validators haven’t caught up yet. See this part of the spec.

翻訳:問題のマークアップは、Twenty SeventeenがSVGにリンクする2つの方法をどのように使っているかに関係しています。一つの方法はSVG規格のバージョン1.1由来で、もう片方はバージョン2です。現行のブラウザーは片方だけをサポートしていますから、(ブラウザーがどちらを使っていてもいいように?)私たちは両方共使用しています。バリデーターの中には、まだ追いついていないものもありますが、有効なHTMLですけどね。この部分のスペックを見てください。

へぇ~。W3Cのバリデーターが勧告に追いついていないってこともあるんですね~。どれどれ、と、見てみました。

Scalable Vector Graphics (SVG) 2、Chapter 16: Linking、16.1.6. Deprecated XLink URL reference attributes

In previous versions of SVG, the ‘href’ attribute was specified in the XLink namespace [xlink] namespace. This usage is now deprecated and instead URL references should be specified using the ‘href’ attribute without a namespace.

翻訳:以前のバージョンのSVGでは、href属性はXlink名前空間内にて指定されていました。この用法は現在では廃止され、参照URLは名前空間を伴わないhref属性内で指定されます。

つまり、もともとのエラーの中の削除したほうが新しい記述法で、残した方が古い記述法なんですね。新ルールに対応しているか、旧ルールに対応しているかはビジターの使用ブラウザー依存なので、テンプレートには両方書いておいた方が良いですよね。ん。納得。

上記は勧告候補なので、正式勧告がでて、W3Cのバリデーターが追いつくまで、エラーのままにしておいた方が良いね。っという結論になりました。

カテゴリーHTML

コメントを残す

メールアドレスが公開されることはありません。