mizusame

【Blogger】more タグの Warning: The name attribute is obsolete. を回避してみた

Blogger の投稿や固定ページを The W3C Markup Validation ServiceNu Html Checker に掛けると、以下のような警告を受けることがあります。

Warning: The name attribute is obsolete. Consider putting an id attribute on the nearest container instead.

【和訳】警告: name 属性は廃止されました。代わりに、最も近いコンテナーに id 属性を配置することを検討してください。

Blogger の追記区切りタグ <!--more--> がページ上で <a name='more'></a> に変換されるせいでこの警告に引っかかってしまうようです。

エラーではないので改善が必須というわけでもなさそうですが、念のため回避する方法を調べてみました。

アイキャッチ

The name attribute is obsolete. を回避する方法

Google で "<a name='more'></a>"(半角二重引用符含む)と検索したら、こんな記事が見つかりました。

上記の記事に書かれている方法はファンブログにおけるものですが、Blogger でもこれを応用して警告を回避できました。

まず、Blogger のエディタのモードを HTML ビューにし、追記の開始位置に追記区切りタグ <!--more--> の代わりに以下のコードを設置します。

<!--<!--more-->-->

Blogger のエディタ上で見ると、外側のコメントアウトの終了タグ --> だけコードがハイライトされませんが、そのままで大丈夫です。

この作業のあとエディタのモードを作成ビューに変更し、また HTML ビューに戻すと、ハイライトされなかったほうの -->--&gt; に変換されてしまいます。これだと more タグ以降のコンテンツが表示されなくなるので、ちゃんと変換前の表記に戻しておいてください。

また、more タグをコメントアウトしたことで追記リンク(URL に #more が含まれるリンク)のアンカー先がなくなってしまうため、必要に応じて直下の要素(ph2 など)に id="more" を付与します。

<!--<!--more-->-->

<[要素名] id="more">[文字列]</[要素名]>

ここまでできたら記事を保存し、実際のページのソースコードを確認します。コメントアウトした more タグを設置した部分が以下のように表示されていたら成功です。

<!--<a name='more'></a>-->

記事の冒頭で紹介した HTML チェッカーに再び掛けてみると、The name attribute is obsolete. の警告が出なくなりました。

この方法の問題点

前述の手順を踏めば確かに追記区切りタグ <!--more--> による警告は出なくなりますが、筆者的にはこの方法は非推奨です。これからその理由について説明します。

Blogger ブログのフィードを「追記の区切りまで」に設定し、記事に more タグを設置すると、Atom / RSS フィードにおける記事本文の文末に以下の追記リンクのコードが挿入されます。

&lt;a href=&quot;[記事 URL]#more&quot;&gt;[追記リンクテキスト]&lt;/a&gt;

わかりやすいように上のコードをアンエスケープしたものがこちらです。

<a href="[記事 URL]#more">[追記リンクテキスト]</a>

一方、more タグを前項の方法でコメントアウトした場合、Atom / RSS フィード上では本来追記リンクがあるべきはずの場所に以下のコードが挿入されます。

&lt;!--&lt;!--more--&gt;

わかりやすいように上のコードをアンエスケープしたものがこちらです。

<!--<!--more-->

当然追記リンクは機能しないことに加え、HTML 上では表示されていた more タグの外側の終了タグ --> が消え、コメントアウトが開いたままになっています。この開いたままのコメントアウトが後続のコンテンツに悪影響を及ぼす恐れがあるのです。

FeedlyInoreader などのフィードリーダーの中には、フィードを取得した時点の記事内容を保持し、その後いくら元記事を修正してもその変更がリーダーに反映されないものが多々あります。このようなサービスを利用している場合、more タグの変更によってリーダー上になにか不具合が起きてしまってもユーザー側があとから変更を加えることができません。

こうして記事にしておいてなんですが、作業の手間も含めデメリットのほうが明らかに大きい方法なので、無理してやる必要ないんじゃないかなーと思います。

それでも試したい方は自己責任でお願いします!

    編集
    ホーム