[2] [DFN[[RUBYB[適合性検査器]@en[conformance checker]]]]は、
[[適合性]]を検査する[[ソフトウェア部品]]です。

* 仕様書

[REFS[
- [5] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2017-09-14 20:17:55 +09:00]]) <https://html.spec.whatwg.org/#conformance-classes>
- [14] [CITE@en-US[Accessible Rich Internet Applications (WAI-ARIA) 1.1]] ([TIME[2017-09-14 21:02:18 +09:00]]) <https://w3c.github.io/aria/aria/aria.html#conformance_checkers>
]REFS]

* 意味

[6] [[適合性検査器]]は、
[[仕様書]]に示された[RUBYB[適合性基準]@en[conformance criteria]]について[[文書]]が[[適合]]するか否かを[RUBYB[検証]@en[verify]]しなければ[MUST[なりません]]
[SRC[>>5]]。

;; [[文書の適合性]]も参照。

[12] [CITE[HTML Standard]] の要件に従う[[適合性検査器]]を、
[DFN[HTML validator]] と呼ぶことができます。 [SRC[>>5]]

* 処理

[7] [RUBYB[自動化]@en[automate]]された[[適合性検査器]]は、
[[著者]]の[RUBYB[意図]@en[intent]]の解釈を必要とする誤りの検出を[RUBYB[しなくて構いません]@en[exempt]]。

[EG[
[8] 例えば [CODE(HTMLe)@en[blockquote]] [[要素]]の[[内容]]が[[引用]]でなければ[[不適合]]です。
しかし[[人間]]の判断を介さない[[適合性検査器]]は、
[CODE(HTMLe)@en[blockquote]] [[要素]]の[[内容]]が[[引用]]のみであるかを検査しなくて構いません。
[SRC[>>5]]
]EG]

;; [13] これは[[authoring tool]]に求められるのと同程度です。

-*-*-

[9] [[適合性検査器]]は、
入力の[[文書]]を[[閲覧文脈]]なし
([[構文解析器]]の[F[scripting flag]]が無効)
で[[構文解析]]したときに適合するか否かを検査しなければ[MUST[なりません]] [SRC[>>5]]。

[10] [[適合性検査器]]は、
入力の[[文書]]を[[スクリプト]]を実行する[[閲覧文脈]]で[[構文解析]]したときに[[適合]]するか否かや、
[[スクリプト]]によって (実行中の一時的な状態を除き) [[不適合]]な状態とならないことを検査する[SHOULD[べき]]です。 [SRC[>>5]]

;; [11] これが [SHOULD[SHOULD]] であって [MUST[MUST]] でないのは、
不可能であるから ([[停止性問題]]) です。 [SRC[>>5]]

-*-*-

[15] [[ARIA]] の[[適合性検査器]]は、
すべての要件を検査する[SHOULD[べき]]です。 [SRC[>>14]]

[16] その際、 [MUST[MUST]] 要件への違反は[[誤り]]としなければ[MUST[ならず]]、
[SHOULD[SHOULD]] 要件への違反は[[警告]]しなければ[MUST[なりません]]。 [SRC[>>14]]

* 歴史

[3] [[Web]] で初めて[[適合性検査器]]なる用語を導入したのは [[Web Applications 1.0]]
([[HTML5]]) でした。 [[HTML5]] はそれまでの「[[SGML応用]]である [[HTML]]」
という虚構からの離脱を試みたため、 [[DTD]] と深く結びついた概念である
「[RUBYB[[[妥当性検証]]]@en[validation]]」や「[RUBYB[妥当性検証器]@en[validator]]」
に代わる用語が必要になったようです。

[1]
[CITE@en[Re: Formal definition of HTML5 (was Re: Version information)]] ([[Ian Hickson]] 著, [TIME[2007-04-17 18:30:15 +09:00]] 版) <http://lists.w3.org/Archives/Public/public-html/2007Apr/1021.html>

>We want to encourage an ecosystem where conformance checkers compete over 
how many errors they can test for, in the same way that browsers compete 
in how many test cases they pass, instead of having an ecosystem like 
HTML4's, where in the YEARS of HTML4 being the latest and greatest, no 
serious usable conformance checker was made that used more than the 
official schema.

いってることはごもっともですが、 [[AHL]] 
の方が [[DTD]] より有用な [[HTML 4]] チェッカーではありませんでしたかね?

;; Ian が [[AHL]] を知っているのかはわかりませんが。

([[名無しさん]] [WEAK[2007-04-23 10:24:25 +00:00]])



[4] [CITE@en[Remove obsolete permitted DOCTYPEs]]
([[sideshowbarker]]著, [TIME[2016-11-18 00:22:24 +09:00]])
<https://github.com/whatwg/html/commit/31c20af4913f997926b3c806e218d3d16a2944f2>