Parent Directory
|
Revision Log
++ whatpm/t/ChangeLog 16 Aug 2009 07:20:16 -0000 * content-model-7.dat: The |bb| element has been removed from the spec so that relevant test results are changed (HTML5 revision 3621). 2009-08-16 Wakaba <wakaba@suika.fam.cx> ++ whatpm/t/dom-conformance/ChangeLog 16 Aug 2009 07:20:00 -0000 * html-interactive-1.dat, html-datatemplate.dat: The |bb| element has been removed from the spec so that relevant test results are changed (HTML5 revision 3621). 2009-08-16 Wakaba <wakaba@suika.fam.cx> ++ whatpm/Whatpm/ContentChecker/ChangeLog 16 Aug 2009 07:20:36 -0000 * HTML.pm: The |bb| element has been dropped from the spec (HTML5 revision 3621). 2009-08-16 Wakaba <wakaba@suika.fam.cx>
| 1 | wakaba | 1.1 | package Whatpm::ContentChecker; |
| 2 | use strict; | ||
| 3 | require Whatpm::ContentChecker; | ||
| 4 | |||
| 5 | wakaba | 1.117 | use Char::Class::XML qw/InXML_NCNameStartChar10 InXMLNCNameChar10/; |
| 6 | |||
| 7 | wakaba | 1.1 | my $HTML_NS = q<http://www.w3.org/1999/xhtml>; |
| 8 | |||
| 9 | wakaba | 1.174 | ## --- Feature Status --- |
| 10 | |||
| 11 | wakaba | 1.187 | sub FEATURE_HTML5_REC () { |
| 12 | wakaba | 1.154 | ## NOTE: Part of HTML5, the implemented status. |
| 13 | wakaba | 1.89 | Whatpm::ContentChecker::FEATURE_STATUS_REC | |
| 14 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 15 | wakaba | 1.187 | |
| 16 | ## Strictly speaking, HTML5's "implemented and widely deployed" | ||
| 17 | ## status does not necessarily satisfy the condition for | ||
| 18 | ## FEATURE_STATUS_REC, since there is no test cases for most of | ||
| 19 | ## features marked as "implemented" in HTML5. Nevertheless, we | ||
| 20 | ## special-case HTML5's this status as if that had passed the CR | ||
| 21 | ## phase, considering HTML's history. | ||
| 22 | wakaba | 1.89 | } |
| 23 | wakaba | 1.187 | |
| 24 | wakaba | 1.154 | sub FEATURE_HTML5_CR () { |
| 25 | ## NOTE: Part of HTML5, the awaiting implementation feedback status. | ||
| 26 | Whatpm::ContentChecker::FEATURE_STATUS_CR | | ||
| 27 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 28 | } | ||
| 29 | wakaba | 1.54 | sub FEATURE_HTML5_LC () { |
| 30 | wakaba | 1.154 | ## NOTE: Part of HTML5, the last call of comments status. |
| 31 | wakaba | 1.54 | Whatpm::ContentChecker::FEATURE_STATUS_LC | |
| 32 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 33 | } | ||
| 34 | sub FEATURE_HTML5_AT_RISK () { | ||
| 35 | wakaba | 1.154 | ## NOTE: Part of HTML5, but in the being considered for removal |
| 36 | ## status. | ||
| 37 | wakaba | 1.54 | Whatpm::ContentChecker::FEATURE_STATUS_WD | |
| 38 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 39 | } | ||
| 40 | sub FEATURE_HTML5_WD () { | ||
| 41 | wakaba | 1.154 | ## NOTE: Part of HTML5, the working draft status. |
| 42 | wakaba | 1.54 | Whatpm::ContentChecker::FEATURE_STATUS_WD | |
| 43 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 44 | } | ||
| 45 | sub FEATURE_HTML5_FD () { | ||
| 46 | wakaba | 1.154 | ## NOTE: Part of HTML5, the first draft status. |
| 47 | wakaba | 1.54 | Whatpm::ContentChecker::FEATURE_STATUS_WD | |
| 48 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 49 | } | ||
| 50 | sub FEATURE_HTML5_DEFAULT () { | ||
| 51 | wakaba | 1.154 | ## NOTE: Part of HTML5, but not annotated. |
| 52 | wakaba | 1.54 | Whatpm::ContentChecker::FEATURE_STATUS_WD | |
| 53 | Whatpm::ContentChecker::FEATURE_ALLOWED | ||
| 54 | wakaba | 1.49 | } |
| 55 | wakaba | 1.54 | sub FEATURE_HTML5_DROPPED () { |
| 56 | wakaba | 1.154 | ## NOTE: Was part of HTML5, in a status before the last call of |
| 57 | ## comments, but then dropped. | ||
| 58 | wakaba | 1.49 | Whatpm::ContentChecker::FEATURE_STATUS_WD |
| 59 | } | ||
| 60 | wakaba | 1.118 | sub FEATURE_HTML5_LC_DROPPED () { |
| 61 | wakaba | 1.154 | ## NOTE: Was part of HTML5, in the last call of comments status, but |
| 62 | ## then dropped. | ||
| 63 | wakaba | 1.118 | Whatpm::ContentChecker::FEATURE_STATUS_LC |
| 64 | } | ||
| 65 | wakaba | 1.154 | |
| 66 | wakaba | 1.119 | sub FEATURE_WF2X () { |
| 67 | wakaba | 1.154 | ## NOTE: Defined in WF2 (whether deprecated or not) and then |
| 68 | ## incorporated into the HTML5 spec. | ||
| 69 | wakaba | 1.119 | Whatpm::ContentChecker::FEATURE_STATUS_LC |
| 70 | } | ||
| 71 | wakaba | 1.54 | sub FEATURE_WF2 () { |
| 72 | wakaba | 1.154 | ## NOTE: Features introduced or modified in WF2, which were not |
| 73 | ## merged into HTML5. | ||
| 74 | wakaba | 1.119 | Whatpm::ContentChecker::FEATURE_STATUS_LC |
| 75 | wakaba | 1.54 | } |
| 76 | wakaba | 1.126 | sub FEATURE_WF2_INFORMATIVE () { |
| 77 | wakaba | 1.154 | ## NOTE: Features mentioned in WF2's informative appendix A, which |
| 78 | ## were not merged into HTML5. | ||
| 79 | wakaba | 1.56 | Whatpm::ContentChecker::FEATURE_STATUS_LC |
| 80 | } | ||
| 81 | wakaba | 1.49 | |
| 82 | wakaba | 1.154 | sub FEATURE_RDFA_REC () { |
| 83 | Whatpm::ContentChecker::FEATURE_STATUS_REC | ||
| 84 | wakaba | 1.121 | } |
| 85 | wakaba | 1.154 | sub FEATURE_RDFA_LC_DROPPED () { |
| 86 | ## NOTE: The feature that was defined in a RDFa last call working | ||
| 87 | ## draft, but then dropped. | ||
| 88 | wakaba | 1.61 | Whatpm::ContentChecker::FEATURE_STATUS_LC |
| 89 | } | ||
| 90 | wakaba | 1.58 | |
| 91 | ## NOTE: XHTML Role LCWD has almost no information on how the |role| | ||
| 92 | ## attribute can be used- the only requirements for that matter is: | ||
| 93 | ## "the attribute MUST be referenced using its namespace-qualified form" (and | ||
| 94 | ## this is a host language conformance!). | ||
| 95 | wakaba | 1.82 | sub FEATURE_ROLE_LC () { |
| 96 | Whatpm::ContentChecker::FEATURE_STATUS_LC | ||
| 97 | } | ||
| 98 | |||
| 99 | sub FEATURE_XHTML2_ED () { | ||
| 100 | wakaba | 1.154 | ## NOTE: XHTML 2.0 Editor's Draft, in which the namespace URI is |
| 101 | ## "http://www.w3.org/1999/xhtml". | ||
| 102 | wakaba | 1.82 | Whatpm::ContentChecker::FEATURE_STATUS_WD |
| 103 | } | ||
| 104 | wakaba | 1.58 | |
| 105 | wakaba | 1.55 | sub FEATURE_XHTMLBASIC11_CR () { |
| 106 | wakaba | 1.154 | ## NOTE: XHTML Basic 1.1 Recommendation, new features (not in XHTML |
| 107 | ## M12N). | ||
| 108 | Whatpm::ContentChecker::FEATURE_STATUS_REC | ||
| 109 | wakaba | 1.55 | } |
| 110 | sub FEATURE_XHTMLBASIC11_CR_DEPRECATED () { | ||
| 111 | wakaba | 1.154 | ## NOTE: XHTML Basic 1.1 Recommendation, new but deprecated |
| 112 | ## features. | ||
| 113 | Whatpm::ContentChecker::FEATURE_STATUS_REC | | ||
| 114 | wakaba | 1.55 | Whatpm::ContentChecker::FEATURE_DEPRECATED_INFO |
| 115 | } | ||
| 116 | |||
| 117 | wakaba | 1.154 | sub FEATURE_RUBY_REC () { |
| 118 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 119 | wakaba | 1.82 | } |
| 120 | |||
| 121 | wakaba | 1.154 | sub FEATURE_M12N11_LC () { |
| 122 | ## NOTE: XHTML M12N 1.1 Recommendation, new features (not in 1.0). | ||
| 123 | Whatpm::ContentChecker::FEATURE_STATUS_REC; | ||
| 124 | wakaba | 1.99 | } |
| 125 | |||
| 126 | wakaba | 1.49 | ## NOTE: M12N10 status is based on its abstract module definition. |
| 127 | ## It contains a number of problems. (However, again, it's a REC!) | ||
| 128 | wakaba | 1.54 | sub FEATURE_M12N10_REC () { |
| 129 | wakaba | 1.154 | ## NOTE: Oh, XHTML m12n 1.0 passed the CR phase! W3C Process sucks! |
| 130 | wakaba | 1.54 | Whatpm::ContentChecker::FEATURE_STATUS_REC |
| 131 | } | ||
| 132 | sub FEATURE_M12N10_REC_DEPRECATED () { | ||
| 133 | Whatpm::ContentChecker::FEATURE_STATUS_REC | | ||
| 134 | Whatpm::ContentChecker::FEATURE_DEPRECATED_INFO | ||
| 135 | } | ||
| 136 | wakaba | 1.49 | |
| 137 | ## NOTE: XHTML10 status is based on its transitional and frameset DTDs | ||
| 138 | ## (second edition). Only missing attributes from M12N10 abstract | ||
| 139 | ## definition are added. | ||
| 140 | wakaba | 1.54 | sub FEATURE_XHTML10_REC () { |
| 141 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 142 | } | ||
| 143 | |||
| 144 | wakaba | 1.61 | ## NOTE: Diff from HTML4. |
| 145 | sub FEATURE_ISOHTML_PREPARATION () { ## Informative documentation | ||
| 146 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 147 | } | ||
| 148 | wakaba | 1.58 | |
| 149 | wakaba | 1.49 | ## NOTE: HTML4 status is based on its transitional and frameset DTDs (HTML |
| 150 | ## 4.01). Only missing attributes from XHTML10 are added. | ||
| 151 | wakaba | 1.54 | sub FEATURE_HTML4_REC_RESERVED () { |
| 152 | Whatpm::ContentChecker::FEATURE_STATUS_WD | ||
| 153 | } | ||
| 154 | |||
| 155 | ## TODO: According to HTML4 definition, authors SHOULD use style sheets | ||
| 156 | ## rather than presentational attributes (deprecated or not deprecated). | ||
| 157 | wakaba | 1.48 | |
| 158 | wakaba | 1.61 | ## NOTE: Diff from HTML4. |
| 159 | sub FEATURE_HTML32_REC_OBSOLETE () { | ||
| 160 | Whatpm::ContentChecker::FEATURE_STATUS_CR | | ||
| 161 | Whatpm::ContentChecker::FEATURE_DEPRECATED_SHOULD | ||
| 162 | ## NOTE: Lowercase normative "should". | ||
| 163 | } | ||
| 164 | |||
| 165 | sub FEATURE_RFC2659 () { ## Experimental RFC | ||
| 166 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 167 | } | ||
| 168 | |||
| 169 | ## NOTE: HTML 2.x - diff from HTML 2.0 and not in newer versions. | ||
| 170 | sub FEATURE_HTML2X_RFC () { ## Proposed Standard, obsolete | ||
| 171 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 172 | } | ||
| 173 | |||
| 174 | ## NOTE: Diff from HTML 2.0. | ||
| 175 | sub FEATURE_RFC1942 () { ## Experimental RFC, obsolete | ||
| 176 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 177 | } | ||
| 178 | |||
| 179 | ## NOTE: Diff from HTML 3.2. | ||
| 180 | sub FEATURE_HTML20_RFC () { ## Proposed Standard, obsolete | ||
| 181 | Whatpm::ContentChecker::FEATURE_STATUS_CR | ||
| 182 | } | ||
| 183 | wakaba | 1.58 | |
| 184 | wakaba | 1.174 | ## --- Content Model --- |
| 185 | |||
| 186 | wakaba | 1.29 | ## December 2007 HTML5 Classification |
| 187 | |||
| 188 | my $HTMLMetadataContent = { | ||
| 189 | $HTML_NS => { | ||
| 190 | title => 1, base => 1, link => 1, style => 1, script => 1, noscript => 1, | ||
| 191 | wakaba | 1.118 | 'event-source' => 1, eventsource => 1, |
| 192 | command => 1, datatemplate => 1, | ||
| 193 | wakaba | 1.29 | ## NOTE: A |meta| with no |name| element is not allowed as |
| 194 | ## a metadata content other than |head| element. | ||
| 195 | meta => 1, | ||
| 196 | }, | ||
| 197 | ## NOTE: RDF is mentioned in the HTML5 spec. | ||
| 198 | ## TODO: Other RDF elements? | ||
| 199 | q<http://www.w3.org/1999/02/22-rdf-syntax-ns#> => {RDF => 1}, | ||
| 200 | }; | ||
| 201 | |||
| 202 | wakaba | 1.72 | my $HTMLFlowContent = { |
| 203 | wakaba | 1.29 | $HTML_NS => { |
| 204 | section => 1, nav => 1, article => 1, blockquote => 1, aside => 1, | ||
| 205 | h1 => 1, h2 => 1, h3 => 1, h4 => 1, h5 => 1, h6 => 1, header => 1, | ||
| 206 | footer => 1, address => 1, p => 1, hr => 1, dialog => 1, pre => 1, | ||
| 207 | ol => 1, ul => 1, dl => 1, figure => 1, map => 1, table => 1, | ||
| 208 | wakaba | 1.119 | form => 1, fieldset => 1, |
| 209 | wakaba | 1.72 | details => 1, ## ISSUE: "Flow element" in spec. |
| 210 | datagrid => 1, ## ISSUE: "Flow element" in spec. | ||
| 211 | wakaba | 1.29 | data |