W3Cの「Markup Validator」で、「use要素」の中に「href属性」を使うことができません。というエラーが出ていたのですが、解消したみたいなので記事を更新します。

2019年3月時点では、「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のバリデーターが追いつくまで、エラーのままにしておいた方が良いね。っという結論になりました。

最後までお読みいただきありがとうございます。

投稿者: のろのろ

海外赴任中で、社畜で、早期リタイア志望者で、ゲーマーで、トレッキーに片足突っこんでいる、SF好きの、雑記ブロガーです。

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください