|    | 1  2  3  4  5  6  7  8  9  10  11  12 | |

W3C Validation

HTML 文書の W3C 標準への準拠状況を検証します

HTML 検証ツール

DTD に準拠した、文法的に正当な (X)HTML 文書であるかをチェックするツールを HTML バリデータ (HTML Validator) と言います。

代表的なバリデータは、W3C が提供する W3C Markup Validation Service や、 k16 氏の Another HTML-lint gateway などがあります。

ヒントのアイコン

Another HTML-lint gateway のページ表示で文字化け

Internet Explorer 8 で文字化けを起こしている場合は、ブラウザのリロード (reload) を行うか、FireFox など別のブラウザで表示してください。

ここでは W3C Markup Validation Service を使って検証を行います。

ページトップへ

検証チェック開始

W3C検証を、ファイルアプロードにて開始検証サイト (W3C Markup Validation Service) をアクセスします。

現在 (2011/01/01) の検証ツールのバージョンは W3C Markup Validator, v1.1. であることが、ページ下部に表示されています。

検証するページを入力しますが、その方法は3つあります。

1. Web ページの URI を入力する

2. パソコンにあるページファイルを指定する。

3. HTML を直接入力する。

ここでは、2.の方法をとります。

「参照」 ボタンをクリックして、パソコンのホルダー
から、検証するページを指定します。

「Check」 ボタンをクリックすると検証が開始され、結果が表示されます。

ページトップへ

検証結果 ‐ エラー表示

W3C 標準検証結果検証サイト (W3C Markup Validator) による検証の結果、エラーがあると右図のように、エラーがあることと、その数が表示されます。

検証したファイルの DOCTYPE もリストされるので、確認します。

当サイトのページを中心に検証した結果のエラーと、その修正をグループ分けして紹介します。

警告

警告マーク Byte-Order Mark found in UTF-8 File.

ユニコード (Unicode) の Byte-Order Mark (BOM) はファイルの先頭におかれる "FEFF" など16ビット幅の値で、本来 UTF-16 用のものだが、これが UTF-8 ファイルと指定している当ファイルに見つかった。これがあるとブラウザによっては問題を起こしますとの警告です。

意図的にそのようなものを入力したことはないのだが、XHTMLファイルをメモ帳で作った場合に発生することを経験している。

解決策は、ホームページビルダーで該当ファイルを開き、HTMLソースの先頭行の先頭にあるスペースを削除して保存すると、警告は出なくなります。

要素 meta に関するエラー

エラーマーク there is no attribute "name"

エラーマーク there is no attribute "content"

エラーマーク element "META" undefined

エラーマーク element "META" undefined

要素 meta が大文字になっているために、エラーになりました。

過去のバージョンで作成したページをコピーしたために残ったものでしょう。

meta を小文字にするだけで、上記4つのエラーは回避されます。

属性 "align" に関するエラー

エラーマーク there is no attribute "align"

属性 align は過去において使われてきましたが、非推奨。

代わりに CSS text-align プロパティにてテキストあるいは inline 要素 (img など) を要素内でどの位置に配置するかを指定するとなっています。

また、CSS float プロパティを使用して回り込みを指定します。

ここでは h1 に指定しているが、本来意図して記述したものかどうかは不明。

従って、align="center" は削除します。

要素 img の属性 "border" と "alt" に関するエラー

エラーマーク there is no attribute "border"

過去に使われていた border 属性は、XHTML 1.0 Strict では非推奨となっています。

border="0" を削除して、CSS で回避することになります。

修正:

エラーマーク required attribute "alt" not specified

属性 alt が指定されていないことでのエラー。

要素 img の属性 "hspace" に関するエラー

エラーマーク there is no attribute "hspace"

Strict バージョンでは "hspace" は非推奨となりました。替りに CSS で margin-right、margin-left を指定します。

要素 script の属性 "language" に関するエラー

エラーマーク there is no attribute "language"

エラーマーク required attribute "type" not specified

JavaScript に求められている type 属性が記述されていないので、上の二つのエラーがでている。

修正は、language="JavaScript" を削除して、代わりに type="text/javascript" を記述します。

属性 "name"、 "id" の属性値に関するエラー

エラーマーク value of attribute "name" must be a single token

エラーマーク value of attribute "id" must be a single token

これら name と id の属性は、スペースで区切られた複数の言葉をその値としては受けつけません。一つの言葉 ("token") だけが許されています。

この場合は、二つの単語の間にスペースを入れたままにしたためのエラーで、修正はスペース部分にハイフンを入れました。

エラーマーク character "?" is not allowed in the value of attribute "name"

エラーマーク character "?" is not allowed in the value of attribute "id"

name と id で許される記号に、"?" は無い。

エラーマーク character "'" is not allowed in the value of attribute "name"

エラーマーク character "'" is not allowed in the value of attribute "id"

リスト属性に関するエラー

エラーマーク there is no attribute "type"

ここは、<ol style="list-style-type : lower-alpha ;"> と置き換えます。

エラーマーク there is no attribute "start"

エラーマーク there is no attribute "value"

要素 ol の start および value プロパティは非推奨となりました。替りに、CSS でカウンターを使い、その値をリスト項目のマーカー位置にリストする方法があるようです。

"target" 属性に関するエラー

エラーマーク there is no attribute "target"

このエラーは Strict でおこります。Strict では "target" 属性は無くなりました。

CSS で代用する方法も無いようです。

アクセシビリティを考慮すると、"target" 属性は使用しない方が良いのかもしれません。ユーザーの意図に関係なく、新しいウインドウが次々に開いてしまい、戻りが分からなくなるなど、ユーザーを混乱させるのを避けるのは制作者として考慮しなくてはならないでしょう。

それとは別に、新しいウインドウを親ウインドウとは別に開いて説明をするなどの使い方も捨てがたいものです。

エラーを避ける方法で考えられるものは、1.target 属性を使わない、2.Strict ではなく Transitional に変更する、3.JavaScriptを使用する、などがあります。

Strict に固執し、新しいウインドウで開くのを追及するのであれば、3.の方法を執ることになります。

用語解説のアイコン

<a href="URL" onclick="window.open(URL,ウインドウ名[,オプション]); return false">...</a>

onclick は、そのフォームのボタンがクリックされた場合に、指定の関数を実行します。

window.open() は JavaScript のメソッドで、ウインドウを生成します。各引数の文字列は一重引用符または二重引用符で括って指定します。

第1引数「URL」は生成されるウィンドウに表示するページのURLです。this.href は現在のオブジェクト href 値を意味します。

第2引数「ウィンドウ名」を指定するときは引用符で括ります。ウィンドウ名を指定することで、不必要に何個もウィンドウを開かないように制御することができます。

第3引数「オプション」はウィンドウの特徴を設定する文字列です。オプションを省略すると単にブラウザの新規ウィンドウと同様になります。

return false は <a href="..."> の機能を無効化するために指定しています。

JavaScript が無効の状態の時は href に指定したリンク先が表示されます。

"bgcolor" 属性に関するエラー

エラーマーク there is no attribute "bgcolor"

bgcolor 属性は、table、tr、td要素での指定は Strict バージョンでは禁止となりました。CSS で背景色を指定します。

要素 blockquote に関するエラー

エラーマーク character data is not allowed here

要素 blockquote が Strict 準拠であるには、この要素が囲むコンテンツはブロックレベルの要素のみです。

それは <div> あるいは <p> などのコンテナーで囲まれたコンテンツである必要があるのです。

文字参照に関する警告

警告マーク reference not terminated by REFC delimiter

"&" で始まる特殊文字は";" で終わらなければならない。

要素 font に関するエラー

エラーマーク there is no attribute "color"

エラーマーク element "font" undefined

font タグは、テキストの色、フォントなどを指定するのに使われてきたが正式に非推奨となりました

テキストに関する指定はCSSを使っておこなうことになります。

要素 u に関するエラー

エラーマーク element "u" undefined

下線要素の <u> タグは Strict では非推奨となっています。これに代えては、CSSで text-decoration プロパティで underline を指定することになります。

エラーマーク element "u" undefined

下線を CSS の text-decoration: underline; で設定します。

要素 center に関するエラー

エラーマーク element "center" undefined

非推奨なので、CSSにて対応します。この場合は表をページ中央に揃えるので、margin-right: auto; と margin-left: auto; 、そして width を指定します。

要素 width に関するエラー

エラーマーク there is no attribute "width"

<td> ステートメントから width を削除します。

ページトップへ

検証結果 - パスしたとき

W3C検証をパスした時の画面検証結果、パスした時には次のようなメッセージが表示されます。

Congratulations

The uploaded document "css07.html" was successfully checked as XHTML 1.0 Strict. This means that the resource in question identified itself as "XHTML 1.0 Strict" and that we successfully performed a formal validation using an SGML, HTML5 and/or XML Parser(s) (depending on the markup language used).

おめでとうございます。

アプロードして検証したページ "css07.html" が、 XHTML 1.0 Strict の検証にパスしました。このことは、該当のページが "XHTML 1.0 Strict" と見做されるということで、使われている HTML5 の正式な検証を成功裡になしとげております。

ページに検証済アイコンを表示する場合には、HTMLをコピーし貼り付けることができます。

ページトップへ

|    | 1  2  3  4  5  6  7  8  9  10  11 | |