--- title: Historical artifacts to avoid slug: Web/Guide/HTML/Obsolete_things_to_avoid tags: - HTML - NeedsContent - NeedsTechnicalReview translation_of: Learn/HTML/Introduction_to_HTML translation_of_original: Web/Guide/HTML/Obsolete_things_to_avoid ---
多くの人々はページのソースを見てコピー & ペーストすることで、元のサイトが上手に作成されているかを考えることなく HTML、CSS、JavaScript を学習しました。これは、過去には必要であったかもしれないが現在は無意味になっているコーディングの慣習を習得してしまうことを意味します。このページでは、時間がたつにつれて不要あるいは悪い慣習になった事柄を説明します。
(X)HTML には 10 種類ほどの doctype があります。それらの違いはわずかです (違いがない場合もあります)。HTML5 の doctype の使用を推奨します。
<!DOCTYPE html>
これはすべてのブラウザ (Internet Explorer 6 を含む) で標準準拠モードになります。
charset
属性以下の記述を含むソースコードを見ることがよくあります:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
ところが、すべての Web ブラウザ (Internet Explorer 6 を含む) は以下のように短縮した場合でも同様に動作します:
<meta charset="UTF-8" />
すばらしい リバースエンジニアリング や プラグマティズム によってこの知識を獲得しました。これを使用してください。
<meta>
要素多数の非推奨、非標準、不使用な値がいまだにサイトからサイトへコピーされています。特に以下の値は使用しないでください:
<meta name="MSSmartTagsPreventParsing" content="true">
。これは Internet Explorer 6 のベータ版でしか役に立ちません。このバージョンはもはや使用されず、またスマートタグ機能は削除されており復活することはないでしょう。<meta name="robots" content="all">
。robots 値が存在して、また正当であれば、all
のような存在しない値を使用してはいけません。既定値は index, follow
であり、これは基本的に、存在しない値 all
で想定される動作です。<meta>
全体を削除してください。<meta name="copyright" content="
…
">
。この meta は存在しません。このタグは削除して著作権表示のページまたは箇所を作成して、それに rel="copyright"
値を持つ {{HTMLElement("link")}} HTML 要素でリンクしてください。<meta name="rating" content="
…
">。
この meta は存在しません。<meta>
全体を削除してください。かつては一部のブラウザのみが {{ HTMLElement("script") }} タグを認識していました。そのためスクリプトとして解釈されるべきテキストを、ブラウザが表示してしまうことがありました。この現象に対する自然なアイデアは、スクリプトを HTML のコメントに収めることでした。この方法では、スクリプトを実行するブラウザはそのスクリプトを実行し、スクリプトを認識しないブラウザはスクリプトを無視しました。
そのような時期から、我々は以下のような記述を受け継いできました:
<script><!-- var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "bla.com/ga.js' type='text/javascript'%3E%3C/script%3E")); //--> </script>
または以下のような記述:
<script type="text/javascript"> <!--//--><![CDATA[//><!-- Blabla.extend(MyFramework.settings, { "basePath": "/" }); //--><!]]> </script>
このような記述は、今日では無意味です。スクリプトを実行しないブラウザであっても、 {{ HTMLElement("script") }} タグを無視します。スクリプトだけを {{ HTMLElement("script") }} 要素の開始タグと終了タグの間に記述してください。また、{{ htmlattrxref("src", "script") }} 属性で指定する別のファイルにスクリプトを含めることもよいです。合わせて、HTML5 の {{ htmlattrxref("async", "script") }} 属性や {{ htmlattrxref("defer", "script") }} 属性を用いることも考えてみましょう。
<font> タグに代わり、CSS を用いて要素や id/class セレクタにフォントスタイルを適用してください。
これらは少々議論の余地がありますが、適切な場合はできる限り、それぞれ {{ HTMLElement("strong") }}、 {{ HTMLElement("em") }}、CSS (text-decoration:underline
) を適用した {{ HTMLElement("span") }} を用いるようにしてください。
これらのうちどの要素を選択するかは、裁量に任せます。一部の開発者向けページでは、単純に {{ HTMLElement("b") }} を {{ HTMLElement("strong") }} で、{{ HTMLElement("i") }} を {{ HTMLElement("em") }} で置き換えるようにアドバイスしています。このアドバイスに従うことは悪い考えです。 {{ HTMLElement("strong") }} は特に重要な記述のため、一方 {{ HTMLElement("em") }} はそれ以外に強調する記述のための要素です。たとえば、文字をイタリック体にする目的で単純に {{ HTMLElement("em") }} を用いるのは悪い考えです。強調しないイタリック体の文字列は、CSS で font-style:italic
を用いて実現してください。同様に、書籍や芸術作品のタイトルは伝統的にイタリック体のテキストで記載しますが、このような箇所は {{ HTMLElement("em") }} や {{ HTMLElement("i") }} より {{ HTMLElement("cite") }} 用を用いる方が、より意味を持ちます。