鳩丸よもやま話

bakera.jp > 鳩丸よもやま話 > Another HTML-lint 導入ガイド

Another HTML-lint 導入ガイド

Another HTML-lint とは?

Another HTML-lint は、いしの k16 さん作の HTML 文法チェッカです。HTML 文書が DTD に従ってマーク付けされているかチェックできるのはもちろん、アクセシビリティやブラウザ実装との互換性の問題など、かなり細かい点までチェックすることができます。

非常に高機能なチェッカですが、嬉しいことに原則としてフリーです。ありがたく使わせていただきましょう。

※非営利目的の使用ならばフリーなのですが、営利目的の使用はフリーではないので注意してください。Web制作会社が業務に使う場合、パソコン教室で使う場合などが該当するそうです。その場合のライセンスは 15,000円です。

※非営利の個人はフリーで使えますが、作者にビールをおごることが推奨されています。:-)

Another HTML-lint の使い方概要

Another HTML-lint には、大きく分けて2種類の使い方があります。ゲートウェイ経由で使う方法と、直接スクリプトを実行する方法です。

ゲートウェイ経由で使う

本家のゲートウェイサーヴィス (openlab.ring.gr.jp)にアクセスし、入力フォームに URL や文書そのものを入れて submit するという方法です。インストール作業も何もなしに気軽に利用できるのがメリットです。インターネット上で公開されているものをチェックする場合はこれを使うと良いでしょう。

ただし、企業などで Web 制作に利用する場合、公開前の内容がインターネットを流れるのは危険です。そのような場合はローカルマシンやイントラネットでゲートウェイを動作させるか、あるいは後述の直接使う方法を利用しましょう。

直接スクリプトを実行する

Another HTML-lint のチェッカ本体は htmllint.pm という Perl スクリプトです。ゲートウェイではこれが CGI を通して呼ばれますが、CGI と関係なく動作させることも可能です。

htmllint.pm の動作には Perl5.004 以降が必要ですので、Perl がない場合は Perl のインストール作業も必要となります。インストール作業は少し面倒になりますが、一度入れてしまえばチェックは簡単に、かつ素早くできるようになります。さらに、マクロやバッチファイルと組み合わせて凝った使い方もできるようになります。

頻繁にチェックするなら、後者の使い方がお勧めです。ここでは後者の使い方を説明します。

Another HTML-lint を導入する

本家で紹介されているサイト (openlab.ring.gr.jp)などを参考に、各自で最も利用しやすい方法で導入していただければ良いのですが、初心者(?)向けに、私の導入方法を書いておきます。

Active Perl のインストール

Another HTML-lint の動作には Perl5 が必要ですので、まず Perl5 を導入します。私の場合は、Active Perl (aspn.activestate.com) を入れています。Windows2000 なら、msi ファイルをダウンロードしてきて右クリックして「インストール」を選び、後は適当に指示に従うだけです。

※Cygwin で Perl を使うという手もありますが、そのようなスキルのある人にはこの文書はそもそも不要でしょう。

Jcode.pm

Another HTML-lint は日本語の処理に Jcode.pm というモジュールを使っていますが、これは Perl5 の標準モジュールではありませんので、別途にインストールする必要があります。Perl5.8 以降では標準で Encode モジュールがついていますが、Another HTML-lint はあくまで Jcode を参照しますので、Jcode を入れておく必要があります。ちなみに最近の Jcode は、単なる Encode のラッパーになっているようです。

Active Perl には PPM というパッケージマネージャがついているのですが、どうも PPM 経由では古い Jcode しか入れられないようですので、CPAN 経由で入れるのが良いでしょう。コマンドラインから以下のようにして起動します。

perl -MCPAN -e shell

すると CPAN のプロンプトが表示されるので、まず CPAN 自体をアップデートするべく

install Bundle::CPAN

……とします。かなり時間がかかりますが、勝手にいろいろ入れてくれます。

※よくわからないうちにいろいろ入るのは、それはそれで怖い気がしますが、こだわらない方向で……。

それが終わったら、

reload cpan

install Jcode

とすると、Jcode.pm がインストールされます。すべてが終わったら

quit

として終了します。

※quit コマンドを打たないでコマンドプロンプトを閉じてしまったりすると、ロックファイルが残ってしまい、次から CPAN が動かなくなってしまいます。そのような場合は、Perl のインストールフォルダ (たいてい c:\Perl) に .lock というファイルができているはずなので、これを削除してやれば OK です。

Another HTML-lint のダウンロード

Perl と Jcode がインストールできたところで、いよいよ本体のダウンロードに入ります。Another HTML-lint: Download (openlab.ring.gr.jp) からファイルを取ってきます。

アーカイブは何種類かありますが、注意したいのは、圧縮形式が違うだけではないということです。それぞれ中身が違います。Windows の場合は htmllint.lzh をダウンロードする必要があります。

適当なフォルダを作って LZH ファイルを展開してください。以下、C:\Web\htmllint に展開されているものとして話を進めますが、展開場所が異なる場合は適宜読み替えてください。

バッチファイル作成

このままでも、コマンドプロンプトから perl c:\web\htmllint\htmllint ファイル名 などとすればチェックできますが、それでは面倒ですのでバッチファイルを作っておきます。以下のようなファイルを作ります。

@ECHO OFF
IF %1.==. GOTO WARN

IF EXIST %1\NUL GOTO DIR

REM 以下は単一ファイルをチェックするときの指定
perl c:\web\htmllint\htmllint -d ak,ab,ct,nae,nc,dm,tb,fak -e bv,ost,de,oet,ul -stat c:\web\bat\stat.txt %1 %2 %3 %4 %5 %6 %7 %8 %9 > c:\web\bat\lint.txt
GOTO END

:DIR
REM 以下はあるディレクトリ以下の全ファイルをチェックするときの指定
perl c:\web\htmllint\htmllint -d dac,dtc,cw,dt,uu,be,fak,nl,ct,nae,nc,dm,tb -e ost,oet,mx,bv -stat c:\web\bat\stat.txt %1 %2 %3 %4 %5 %6 %7 %8 %9 > c:\web\bat\lint.txt
GOTO END

:WARN
perl c:\web\htmllint\htmllint -warnings > c:\web\bat\lint.txt
perl c:\web\htmllint\htmllint -listwarnings > c:\web\bat\warn.txt

:END
start "c:\windows\notepad.exe" c:\web\bat\lint.txt

※-d -e オプションはチェック項目の指定です。私の趣味で上記のようにしていますが、お好みに合わせて適宜変更してください。設定ファイル htmllint.env で指定する事もできますが、ディレクトリを渡して大量ファイルをチェックするときには警告を抑制したかったりするので、私は上記のようにしています。

※ここでは作業ディレクトリを c:\web\bat としていますが、これまた適宜変更してください。

これに htmllint.bat とでも名付けて、お好きな場所 (htmllint と同じディレクトリや、バッチファイルを置いてあるディレクトリなどがお勧めです) に保存します。そうしたら、デスクトップにこのバッチファイルへのショートカットを作っておきます。

これで準備完了です。あとは、そのショートカットにファイルをドロップするだけでチェックできます。フォルダをドロップすると、フォルダ内の全てのファイルをチェックしてくれます。

バッチファイル内には perl を呼び出している指定が 2箇所ありますが、前者がファイルを渡されたとき、後者がフォルダを渡されたときの挙動となります。上記の例では、ディレクトリを渡してチェックするときに警告の数が少なくなるようにしてあります。

秀丸と連携させてみる

私は秀丸ユーザですので、チェック結果のテキストファイルも、チェックする HTML ファイルも秀丸で開いています。ここでは、秀丸と Another HTML-lint を効率的に連携させる方法についてメモしておきます。

ダイレクトタグジャンプ

前に挙げたバッチファイルを使ってチェックすると、チェック結果は lint.txt というファイルに出力されます。この内容はダイレクトタグジャンプに対応しています。秀丸で lint.txt を開いたら、エラーの表示されている行で F10 キーを押してみてください。これだけで、エラーのあるファイルのその行にジャンプすることが出来ます。これはびっくりするほど便利なので、是非活用してください。

これは秀丸に限らず、ダイレクトタグジャンプのできるテキストエディタであれば何でも利用可能です。

秀丸から lint する

秀丸で HTML を書いたり編集したりしていて詰まったときに、ちょっと現在のソースを lint してみたくなることがあるかもしれません。そんな時には秀丸のマクロで Another HTML-lint を使えるようにしておくと便利です。

上記の導入を行った上で、以下のような内容のテキストファイルを作ります。

run "perl c:\\web\\htmllint\\htmllint -d ak,ab,ct,nae,nc,dm,tb,fak -e bv,ost,de,oet,ul -stat c:\\web\\bat\\stat.txt " + "\x22" + filename + "\x22" + " > c:\\web\\bat\\lint.txt";
openfile "c:\\web\\bat\\lint.txt";

これを htmllint.mac というファイル名で保存し、秀丸のあるディレクトリ (たいていは "C:\Program Files\hidemaru\") に置きます。それから秀丸を起動し、[マクロ(M)] - [マクロ登録(E)...] を選択すると、「ファイル名」のプルダウンの中に htmllint.mac が追加されているはずです。これを選び、適当な名前をつけます。"HTML-lint" で良いでしょう。すると [マクロ(M)] メニューの中に [HTML-lint] という項目が追加されます。

あとは、[マクロ(M)] - [HTML-lint] を実行すると、現在編集中のソースを Another HTML-lint でチェックすることが出来ます。

さらに、ブラウザから使えるようにしたりする方法もありますが、そのようにしたい場合は、各解説サイト (openlab.ring.gr.jp)を適宜参照してください。

警告一覧

htmllint.pm 3.36 の警告一覧です。-d オプションや -e オプションの後ろには、下記の「警告名」もしくは「略称」を指定することができます。

種別警告名略称メッセージ
over-limit-whinesエラーの数が XX個を超えたのでチェックを打ち切ります。
cant-get-urlu<TAG> の XX 属性の URI `XX` はインタネット上に存在しないかアクセスできません。XX
required-doctypeqd最初の記述が DOCTYPE宣言ではありません。
prectrl-doctypepcdDOCTYPE宣言の前に何か制御文字が含まれています。
unknown-doctypeud不明な DOCTYPE宣言です。XX
doctype-case-mismatchdcmDOCTYPE宣言に指定されている公開識別子の大文字小文字が正しくありません。
unsupported-doctypeusdXX は Another HTML-lint ではサポートされていない DOCTYPE宣言です。XX
expired-doctypexdXX はすでに廃棄されたHTMLです。使わないようにしましょう。
obsoleted-doctypeodXX はあまり薦められないHTMLです。XX を使いましょう。
doctype-mismatchdm指定されている XX は DOCTYPE宣言と一致しません。DOCTYPE宣言を無視します。
misplaced-doctypemdDOCTYPE宣言は文書の先頭でなければなりません。
lower-case-doctypelcdDOCTYPE宣言中の `XX` は小文字で書かなければなりません。
upper-case-doctypeucdDOCTYPE宣言中の XX は大文字で書かなければなりません。
empty-systemidesiDOCTYPE宣言にはシステム識別子が必要です。
illegal-systemidisiDOCTYPE宣言に指定されているシステム識別子が正しくありません。
systemid-case-mismatchsicmDOCTYPE宣言に指定されているシステム識別子の大文字小文字が正しくありません。
ignore-declarationidSGML宣言や DTD宣言などと思われる <XX ~> は無視します。
marked-sectionmksマーク区間 <![XX[ ~ ]]> は、多くのブラウザは理解できません。
badstr-in-marked-sectionbsmkマーク区間中に `XX` を書くことはできません。
unclosed-marked-sectionucmkXX行目のマーク区間 <![XX[ が閉じられていません。
misplaced-xmldeclmxmlXML宣言は文書の先頭でなければなりません。
xhtml-xmldeclxxdXX では XML宣言をすることが強く求められています。
end-xmldeclexdXML宣言を閉じるのは `?>` です。
bad-xmldeclbxdこのXML宣言は正しくありません。
processing-instructionpi処理命令 `<?~>` は理解できません。
w-hyphens-in-commenthyコメント中に `--` は書かない方が安全です。
excluded-w-hyphens-in-commentxhyコメント中に `--` を書くことはできません。
宗教的empty-commentecm空のコメント `<!>` は書かない方が安全です。
illegal-commenticmこのコメントのような記述 `XX` は正しくありません。
title-commenttm<TAG> 中にはコメントを書かないようにしましょう。
宗教的markup-in-commentmkコメント中に `<` や `>` を書くと、いくつかのブラウザを混乱させることがあります。
nested-commentncmコメントを入れ子にすることはできません。
宗教的space-in-closed-commentscc閉じコメントの `--` と `>` の間には空白を入れないようにしましょう。
illegal-closed-commenticc閉じコメントは `XX` ではなく `-->` です。
unclosed-commentuccXX行目のコメントが閉じられていません。
unclosed-tagutXX行目の <XX が閉じられていません。
leading-whitespacelw`<` と `XX` の間には空白を入れてはいけません。
unexpected-openuo予期せぬ `<` が <TAG> 内にあります。閉じられていないタグの可能性があります。
endtag-slashes空要素タグ <TAG> は <XX /> として閉じなければなりません。
leading-space-endtag-slashles空要素タグ <TAG> を閉じるときは `/>` に空白を先行させましょう。
contain-no-spacecns空要素タグ <TAG> の要素には空白さえも含めることはできません。
minimized-endtagmet空要素タグは <XX /> と書くようにしましょう。
noempty-endtag-slashnes非空要素タグ <TAG> を `/>` で閉じることはできません。
excluded-elementxeXX<TAG> を XX行目の <TAG>~</XX> 内に書くことはできません。XX
deprecated-elementdeXXを XX行目の <TAG>~</XX> 内に書くことはあまり薦められません。
misplaced-elementme<TAG> を <XXXX>~</XX> の外に書くことはできません。
once-onlyoo<TAG> は <TAG>~</XX> 内に1度しか書けません。XX行目にもありました。
once-only-groupoog<TAG> は XX行目の <TAG> と同時に <TAG>~</XX> 内に書くことはできません。
must-followmf<TAG> は XX の直後に続かなければなりません。
must-follow-slightmfs<TAG> は XX の直後に続かなければなりません。
requiredq<TAG>~</XX> 内には XXが必要です。
宗教的empty-containerec<TAG> と </XX> の間が空です。
WAIspace-containersc<TAG> と </XX> の間に空白文字しか含まれていません。
宗教的br-only-containerboc<TAG>~</XX> 内には空白以外に <TAG> しか含まれていません。
unknown-elementue<TAG> は不明なタグです。
other-html-elementhe<TAG> はXX用のタグです。
deprecated-tagdt<TAG> はあまり薦められないタグです。XX
deprecated-tag-cssdtc<TAG> はあまり薦められないタグです。スタイルシートを使いましょう。
unsupported-tagust<TAG> は Another HTML-lint では正確な評価はできません。
should-not-usesnu<TAG> は使うべきでありません。
required-start-tagqstここには <TAG> が必要です。
omit-start-tagosここに <TAG> が省略されているようです。省略しないようにしましょう。
omit-start-tag-trivialostここに <TAG> が省略されているようです。
required-end-tagqetここには </XX> が必要です。
omit-end-tagoeXX </XX> が省略されているとみなします。
omit-end-tag-trivialoetXX </XX> が省略されているとみなします。
closing-attributeca終了タグ </XX> には属性を指定することはできません。
illegal-closingic<TAG> には終了タグ </XX> はありません。
宗教的container-whitespacecw<TAG>~</XX> 内のXXに空白文字があります。
mis-matchm</XX> に対応する開始タグ <TAG> が見つかりません。
element-overlapeo</XX> は XX行目の <TAG> と重なり合っているようです。
tags-nesttn<TAG> タグの入れ子が深過ぎます。
unclosed-elementuceXX行目の <TAG> に対応する終了タグ </XX> が見つかりません。
unexpected-pcdataxpXX<TAG>~</XX> 内に普通のテキストを書くことはできません。
illegal-attributeia<TAG> 内におかしな文字列 `XX` があります。
xhtml-emptytagxetXX では空要素タグを `<XX />` と書くことはできません。
宗教的mixed-casemxXXの大文字小文字を統一するようにしましょう。
lower-case-taglctタグ <TAG> は小文字で書かなければなりません。
lower-case-attributelca<TAG> の属性 `XX` は小文字で書かなければなりません。
unknown-attributeua<TAG> に不明な属性 `XX` が指定されています。
other-html-attributeoa<TAG> にXX用の属性 `XX` が指定されています。
deprecated-attributeda<TAG> の属性 `XX` はあまり薦められない属性です。XX
deprecated-attribute-cssdac<TAG> の属性 `XX` はあまり薦められない属性です。スタイルシートを使いましょう。
unsupported-attributeusa<TAG> の属性 `XX` は Another HTML-lint では正確な評価はできません。
leading-space-attributela<TAG> の XX 属性の前には空白が必要です。
repeated-attributera<TAG> で XX 属性の指定が繰り返されています。
required-attributeqa<TAG> には XX 属性が必要です。
required-attribute-pairqap<TAG> で XX 属性を使うときは XX 属性も必要です。
nomixed-attributenma<TAG> で XX 属性と XX 属性を同時に指定することはできません。
required-valueqv<TAG> の XX 属性には属性値が必要です。
no-attribute-valuenv<TAG> の XX の属性値が指定されていません。
宗教的across-lines-attributexl<TAG> の XX の属性値が複数行に渡っています。
宗教的space-around-equalsq<TAG> の XX の属性値区切りの = 前後に空白が含まれています。
unclosed-quotesuq<TAG> の XX の属性値の引用符が閉じられていません。
宗教的attribute-delimiterad<TAG> の XX の属性値が 'XX' と書かれていますが、"XX" の方が安全です。
quote-attribute-valuequ<TAG> の XX の属性値 `XX` は引用符で囲まなければなりません。
recommend-quote-attribute-valuerq<TAG> の XX の属性値 `XX` は引用符で囲んだ方が安全です。
宗教的bare-attribute-valuebv<TAG> の XX の属性値 `XX` が引用符で囲まれていません。
宗教的whitespace-attribute-valuewv<TAG> の XX の属性値 `XX` は空白文字が先行または後行しています。
deprecated-valuedv<TAG> の XX の属性値 `XX` はあまり薦められない値です。
empty-valueev<TAG> の XX の属性値に空の値を指定することはできません。
attribute-lengthal<TAG> の XX の属性値が XX文字を超えています。
attribute-formataf<TAG> の XX の属性値 `XX` は正しくありません。XX
attribute-colorac<TAG> の XX の属性値 `XX` は正しくありません。#RRGGBB の形式か決められた色の名前でなければなりません。
profile-uripu<TAG> の XX の属性値は、DTD上は単一のURIとされています。
unsafe-attributeusfa<TAG> の XX の属性値 `XX` は使わない方が安全です。
attribute-value-caseavc<TAG> の XX の属性値 `XX` は `XX` でなければなりません。
fixed-attributefa<TAG> の XX の属性値は `XX` でなければなりません。
minimized-attributema<TAG> の XX は属性名と属性値が同一です。属性名を省略して属性値だけの指定にしましょう。
no-minimizationnom<TAG> の属性 `XX` で属性名を省略することはできません。
omit-attribute-nameon<TAG> の `XX` は属性名 XX が省略されていますが、うまく評価されないかも知れません。
required-semicolonqs実体参照 `XX` の後ろには `;` を書きましょう。
apos実体参照 `&apos;` は `&#39;` と書くようにしましょう。
lower-xlxXX では 16進数の文字参照は `XX` と小文字で始めなければなりません。
bad-entitybe`XX` は不明な実体参照です。XX
over-ref-charsetorc文字参照 `XX` は限界を超えた文字コードです。参照できるのは `XX` までです。
no-ref-charsetnrc文字参照 `XX` を使用することはできません。
literal-metacharacterlmメタ文字 `XX` は `XX` と書かなければなりません。
宗教的double-quote-in-textdqテキスト中の `XX` は `XX` と書きましょう。
WAIhtml-langhl<TAG> には XX 属性を指定するようにしましょう。
langl<TAG> に XX 属性を指定するときは XX 属性も指定するようにしましょう。
lang-mismatchlmis<TAG> に指定されている XX 属性の値と XX 属性の値が食い違っています。
lang-attributelaaXX指定されている XX 属性は `XX` ですが、<TAG> の XX の属性値が日本語のようです。
lang-pcdatalapXX指定されている XX 属性は `XX` ですが、テキストが日本語のようです。
宗教的mailto-linkml<TAG>~</XX> 内に XX が含まれていません。
WAInavigation-linknl<TAG>~</XX> 内に XX などのナヴィゲーション用のリンクが含まれていません。
mistype-linksmtl<TAG> の XX の属性値 `XX` は `XX` の誤りだと思われます。
宗教的robots-contentroc<XX XX="XX"> に指定されている XX 属性の値 `XX` はあまり薦められません。
content-typect<TAG>~</XX> 内に XX が含まれていません。
no-registered-charsetrcXX指定されている文字コードセット `XX` は IANA に登録されていません。XX
no-charsetnc<XX XX> に XX を指定するようにしましょう。
non-ascii-earlynae<XX XX> で XX が指定されるより前に非ASCII文字が含まれています。
non-asciina非ASCII文字が含まれています。
ctrl-characterctl制御文字 `XX` が含まれています。
han-katakanahk半角カタカナが含まれています。
bad-jis-x0208jx機種依存全角文字 `XX` が含まれています。
bom文書の先頭に BOM が含まれています。
xml-encodingxenXX では XML宣言中に encoding 指定をしましょう。
charset-mismatchcmXX指定されている文字コードセットは `XX` ですが、実際のコードは XX のようです。
conflict-charsetccXXに指定されている文字コードセットは `XX` ですが、XXに指定されているのは `XX` です。
http-head-charsethhcHTTPレスポンスヘッダに XX 指定が含まれていません。
no-text-htmlth<TAG> に指定されている XX が XX ではありません。
conflict-mimecmiXXに指定されているメディアタイプは `XX` ですが、<TAG> に指定されているのは `XX` です。
unrecommended-mimeurmiXXに指定されているメディアタイプ XX は XX には指定しないようにしましょう。
xml-http-equivxhqXX では <XX XX> を記述すべきではありません。
existing-content-typexc<XX XX="XX"> は XX行目にもありました。
content-xxxx-typecxt<TAG> を使うときは <TAG>~</XX> 内に XX を指定するようにしましょう。
need-content-xxxx-typenxtXX 属性を使うときは <TAG>~</XX> 内に XX を指定しなければなりません。
meta-http-equiv-namemhn<TAG> に XX 属性と XX 属性の両方を指定することはできません。
meta-no-http-equiv-namemnhn<TAG> に XX 属性を指定するときは XX 属性か XX 属性を指定しなければなりません。
WAIevent-pairepXX 属性を使うときは XX 属性も指定しましょう。
refreshr<XX XX="XX"> を利用しての自動的なページ更新は避けましょう。
refresh-linkrl<XX XX="XX" XX> を利用するときは同等のリンクも用意しましょう。
comment-elementce<TAG>~</XX> 内の要素はすべてコメントで囲んだ方が安全です。
etago-in-cdataet<TAG>~</XX> 内に `</` を直接書くことはできません。
embedded-in-cdataem<TAG>~</XX> 内XXに `XX` を書くときは外部にXXを用意しましょう。
comment-in-stylescriptcis<TAG>~</XX> 内にコメントを書くと、本当にコメントとして扱われます。
WAIno-noscriptns<TAG> タグがありますが、<TAG> タグがありません。
title-lengthtl<TAG> の内容は XX文字以内に収めるようにしましょう。
body-colorbc<TAG> での色指定が不完全です。XX 属性も含めるようにしましょう。
backgroundbg<TAG> で XX 属性を指定したときは XX 属性も指定するようにしましょう。
same-bgcolorsbg<TAG> の XX 属性の色指定が XX の色と同じです。
near-bgcolornbg<TAG> の XX 属性の色指定と XX の色はXXが不十分です。
repeated-idri<TAG> の XX 属性の値 `XX` は XX行目ですでに使われています。
undef-iduiXX行目で参照されている <TAG> の XX 属性の ID `XX` は定義されていません。
repeated-namern<TAG> の XX 属性の値 `XX` は XX行目ですでに使われています。
fieldset-whitespacefsw<TAG> の直後に空白以外のテキストを書くことはできません。
multiple-checkedmc<XX XX="XX"> に XX 属性が指定されていますが、XX行目ですでに指定されています。
no-checkednocどの <XX XX="XX" XX="XX"> にも XX 属性が指定されていません。
no-selectednosどの <TAG> にも XX 属性が指定されていません。
multiple-selectedms<TAG> に XX 属性が指定されていますが、XX行目ですでに指定されています。XX
over-select-optionsosoひとつの <TAG> 中に指定できる <TAG> は XX件までです。
WAIdefault-textdtx<TAG> にはXX初期値となるテキストを指定しておきましょう。
input-typeint<TAG> には XX 属性を指定するようにしましょう。
button-usemapbu<TAG> に用いる <TAG> には XX 属性を指定することはできません。
label-controllc<TAG> をここに書くことはできません。XX行目の <TAG>~</XX> 内には XX行目に <TAG> が含まれています。
label-no-controllncFOR 属性の含まれない <TAG>~</XX> 内にはフォームコントロールを指定しなければなりません。
label-for-controllfc<TAG> のXX 属性の値と XX行目の <TAG> の XX 属性の値が食い違っています。
WAIform-tabindextb<TAG> には XX 属性を指定するようにしましょう。
WAIform-accesskeyfak<TAG> には XX 属性を指定するようにしましょう。
WAIrecommended-titlet<TAG> には XX 属性XXを指定するようにしましょう。
object-text-equivalentoq<TAG> には等価な内容を書くようにしましょう。
applet-text-equivalentaq<TAG> に XX 属性と等価な内容の両方を書くことは薦められていません。
WAIalt-spacesas<TAG> の XX 属性に空白だけの文字列を指定することは薦められていません。
img-alta<TAG> には XX 属性を指定するようにしましょう。
宗教的img-sizez<TAG> には XX と XX 属性を指定するようにしましょう。
img-mapim<TAG> には XX と XX 属性の両方を指定することはできません。
server-side-image-mapsm<XX XX> でのサーバサイドイメージマップは使わず、クライアントサイドイメージマップを使いましょう。
WAItable-summarysu<TAG> には XX 属性を指定するようにしましょう。
WAIabbr-header-labelab<TAG> には XX 属性を指定するようにしましょう。
colgroup-spancgs<TAG> を要素に持つ <TAG> には XX 属性を指定すべきではありません。
overlap-cellsoc<TAG> の XX 属性の指定と、XX行目の <TAG> の XX 属性の指定が重なり合っています。
no-noframesnf<TAG> タグがありますが、<TAG> タグがありません。
same-document-framesetsd<TAG> の XX 属性に自分自身を指す URI `XX` を指定することはできません。
frame-imagefi<TAG> の XX 属性で直接イメージなどを指定することは薦められていません。
frame-titleft<TAG> には XX 属性を指定するようにしましょう。
existing-target-namext<TAG> の XX 属性のフレームターゲット名 `XX` は XX行目ですでに指定されています。
reserved-target-namert<TAG> の XX 属性のフレームターゲット名 `XX` は予約されています。
reserved-target-name-upperrtu<TAG> の XX 属性のフレームターゲット名 `XX` は小文字で書いたほうが安全です。
illegal-target-nameit<TAG> の XX 属性のフレームターゲット名 `XX` は正しくありません。
WAIphysical-fontpf<TAG> は物理的フォントタグです。論理的タグを使うようにしましょう。XX
p-isnot-brp<TAG> は段落のためのタグです。改行するタグは <TAG> です。
continuous-brsbrs<TAG> が多数連続しています。
tab-in-pretpXX行目の <TAG> 内にはタブ文字を書かないようにしましょう。
heading-orderho<TAG> が XX行目の <TAG> に続いていますが好ましくありません。
WAIheading-text-equivalenthq<TAG>~</XX> 内の <TAG> の XX 属性には何か説明を書きましょう。
WAIlink-accesskeyak<TAG> には XX 属性を指定するようにしましょう。
WAIlink-separationlsリンクとリンクの間は適当な文字で区切りましょう。
WAIlink-text-equivalentlqリンクイメージの <TAG> の XX 属性には何か説明を書きましょう。
WAId-linkdl<TAG> の XX 属性の値 `XX` はあまり薦められません。XX 属性を利用しましょう。
WAIsame-link-textslt<TAG> のアンカー `XX` は XX行目で異なるリンク先を指しています。
WAIhere-anchorh<TAG> のアンカーとして `XX` などを使うのは好ましくありません。
fragment-id-whitespacefw<TAG> のアンカー名 `XX` 中に空白文字が含まれています。
unsafe-fragment-iduf<TAG> のアンカー名 `XX` 中に安全でない文字が含まれています。
empty-fragment-idef<TAG> のアンカー名が空です。
existing-fragment-idxf<TAG> のアンカー名 `XX` は XX行目にもありました。
case-insensitive-fragment-idcf<TAG> のアンカー名 `XX` は XX行目にもありました。大文字小文字は区別されない可能性があります。
same-fragment-idsf<TAG> のアンカー名 `XX` は XX行目で XX 属性としても指定されています。
宗教的id-linkil<TAG> のアンカー名 `XX` は XX行目で XX 属性として定義されています。
diff-id-linkdil<TAG> の XX 属性の値 `XX` と XX 属性の値 `XX` は、同一タグ中では同じでなければなりません。
need-id-namenin<TAG> には XX 属性と XX 属性の両方を指定するようにしましょう。
lower-idlid<TAG> の XX 属性の値 `XX` には小文字を含めないようにしましょう。
bad-linkbl<TAG> のアンカー名 `XX` が見つかりませんでした。
宗教的unref-linkul<TAG> のアンカー名 `XX` は参照されていません。
empty-urleu<TAG> の XX 属性の URI が空です。
url-whitespaceuw<TAG> の XX 属性の URI `XX` 中に空白文字が含まれています。
url-backslashub<TAG> の XX 属性の URI `XX` 中に `\` が含まれています。パスの区切りは `/` でなければなりません。
宗教的unsafe-urluu<TAG> の XX 属性の URI `XX` 中に `XX` が含まれています。XX と書いた方が安全です。
excluded-urlxu<TAG> の XX 属性の URI `XX` 中に使用できない文字 `XX` が含まれています。XX と書かなければなりません。
excluded-url-refxur<TAG> の XX 属性の URI 中の実体参照 `XX` は使用できない文字 `XX` です。
no-corresponding-urlnu<TAG> の XX 属性の URI `XX` 中に ASCII以外の文字が含まれています。
illegal-protocolip<TAG> の XX 属性の URI に指定されているスキーム名 `XX` は正しくありません。
upper-protocolupp<TAG> の XX 属性の URI のスキーム名 `XX` は小文字で指定しましょう。
unknown-protocolup<TAG> の XX 属性の URI に不明のスキーム名 `XX` が指定されています。
local-protocollp<TAG> の XX 属性の URI `XX` はインタネット上から参照できないかも知れません。
cantuse-protocolcup<TAG> の XX 属性の URI のスキーム `XX` は利用できません。
WAIjavascript-urljs<TAG> の XX 属性の URI に指定されているスキーム `XX` の利用は薦められていません。
illegal-format-urlif<TAG> の XX 属性の URI `XX` は正しくない書式です。
trailing-slashts<TAG> の XX 属性の URI `XX` は `/` で終わらせるようにしましょう。
net-pathnp<TAG> の XX 属性の URI `XX` はうまく評価されないかも知れません。
宗教的conflict-directorycd<TAG> の XX 属性の URI `XX` は XX行目で `XX` と指定されています。
宗教的index-htmlih<TAG> の XX 属性の URI `XX` は XX行目で `XX` と指定されています。
later-baselb<TAG> の XX 属性で指定するより前に XX行目で相対 URI が指定されています。
absolute-base-urlabu<TAG> の XX 属性の URI は絶対位置で指定しなければなりません。
unexpected-end-of-htmlxh</XX> の後にまだ何かテキストがあります。
over-file-sizeofsXX では、HTML文書は XXKバイト以内でなければなりません。
unsupported-imageuim<TAG> の XX 属性の URI `XX` が XX ではありません。XX ではイメージは XX でなければなりません。
jskyweb-oluljolul<TAG> の入れ子が深過ぎます。<UL>、<OL> の入れ子は XX階層以内でなければなりません。
jskyweb-lijliXX 中に指定できる <TAG> は XX個までです。
jpo-no-htmljnhXX は <TAG> から始まらなければなりません。
jpo-shift-jisjsjXX は XX で記述しなければなりません。
jpo-bad-charjbcXX では `XX` を使うことはできません。

最近の日記

関わった本など