Minor S5 tweaks and Sync with Latest HTML5lib

This commit is contained in:
Jacques Distler 2007-08-30 12:19:10 -05:00
parent dbed460843
commit 81d3cdc8e4
81 changed files with 9887 additions and 1687 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,159 @@
{"tests": [
{"description": "valid single class attribute value",
"input": "<span class=a>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading space",
"input": "<span class=' a'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing space",
"input": "<span class='a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing space",
"input": "<span class=' a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading tab",
"input": "<span class=' a'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing tab",
"input": "<span class='a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing tab",
"input": "<span class=' a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading LF",
"input": "<span class='
a'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing LF",
"input": "<span class='a
'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing LF",
"input": "<span class='
a
'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading LT",
"input": "<span class=' a'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing LT",
"input": "<span class='a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing LT",
"input": "<span class=' a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading FF",
"input": "<span class=' a'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing FF",
"input": "<span class='a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing FF",
"input": "<span class=' a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading CR",
"input": "<span class=' a'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with trailing CR",
"input": "<span class='a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid single class attribute value with leading and trailing CR",
"input": "<span class=' a '>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by space",
"input": "<span class='a b'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by tab",
"input": "<span class='a b'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by LF",
"input": "<span class='a
b'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by LT",
"input": "<span class='a b'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by FF",
"input": "<span class='a b'>",
"fail-if": "invalid-attribute-value"},
{"description": "valid double class attribute value separated by CR",
"input": "<span class='a b'>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by space",
"input": "<span class='a a'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by tab",
"input": "<span class='a a'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by LF",
"input": "<span class='a
a'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by LT",
"input": "<span class='a a'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by FF",
"input": "<span class='a a'>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid duplicated class attribute value separated by CR",
"input": "<span class='a a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by space",
"input": "<span class='a a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by tab",
"input": "<span class='a a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by LF",
"input": "<span class='a
a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by LT",
"input": "<span class='a a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by FF",
"input": "<span class='a a'>",
"fail-unless": "duplicate-value-in-token-list"},
{"description": "invalid duplicated class attribute value separated by CR",
"input": "<span class='a a'>",
"fail-unless": "duplicate-value-in-token-list"}
]}

View file

@ -0,0 +1,59 @@
{"tests": [
{"description": "valid contenteditable attribute value 'true'",
"input": "<span contenteditable=true>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value 'TRUE'",
"input": "<span contenteditable=TRUE>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value 'TrUe'",
"input": "<span contenteditable=TrUe>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value 'false'",
"input": "<span contenteditable=false>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value 'FALSE'",
"input": "<span contenteditable=FALSE>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value 'FalSe'",
"input": "<span contenteditable=FalSe>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value ''",
"input": "<span contenteditable=''>",
"fail-if": "invalid-attribute-value"},
{"description": "valid contenteditable attribute value (not specified)",
"input": "<span contenteditable>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid contenteditable attribute value 'foo'",
"input": "<span contenteditable=foo>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid contenteditable attribute value '0'",
"input": "<span contenteditable=0>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid contenteditable attribute value '1'",
"input": "<span contenteditable=1>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid contenteditable attribute value 'yes'",
"input": "<span contenteditable=yes>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid contenteditable attribute value 'no'",
"input": "<span contenteditable=no>",
"fail-unless": "invalid-attribute-value"},
{"description": "invalid contenteditable attribute value 'inherit'",
"input": "<span contenteditable=inherit>",
"fail-unless": "invalid-attribute-value"}
]}

View file

@ -0,0 +1,118 @@
{"tests": [
{"description": "contextmenu points to valid ID earlier",
"input": "<menu id=a><span contextmenu=a>",
"fail-if": "id-does-not-exist"},
{"description": "contextmenu points to valid ID later",
"input": "<span contextmenu=a><menu id=a>",
"fail-if": "id-does-not-exist"},
{"description": "contextmenu points to non-existent ID",
"input": "<span contextmenu=a>",
"fail-unless": "id-does-not-exist"},
{"description": "contextmenu points to ID on non-menu element",
"input": "<span id=a><span contextmenu=a>",
"fail-unless": "contextmenu-must-point-to-menu"},
{"description": "uppercase contextmenu points to ID on non-menu element",
"input": "<span id=a><span CONTEXTMENU=a>",
"fail-unless": "contextmenu-must-point-to-menu"},
{"description": "valid ID 'a'",
"input": "<span contextmenu=a>",
"fail-if": "invalid-attribute-value"},
{"description": "valid ID '1'",
"input": "<span contextmenu=1>",
"fail-if": "invalid-attribute-value"},
{"description": "wacky but valid ID",
"input": "<span contextmenu='<html><head><title>a</title></head><body><p>b</p></body></html>'>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid blank ID",
"input": "<span id>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid blank ID with quotes",
"input": "<span contextmenu=''>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid ID because of leading space",
"input": "<span contextmenu=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing space",
"input": "<span contextmenu='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of space in value",
"input": "<span contextmenu='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading tab",
"input": "<span contextmenu=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing tab",
"input": "<span contextmenu='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of tab in value",
"input": "<span contextmenu='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LF",
"input": "<span contextmenu='
a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LF",
"input": "<span contextmenu='a
'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LF in value",
"input": "<span contextmenu='a
b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LT",
"input": "<span contextmenu=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LT",
"input": "<span contextmenu='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LT in value",
"input": "<span contextmenu='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading FF",
"input": "<span contextmenu=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing FF",
"input": "<span contextmenu='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of FF in value",
"input": "<span contextmenu='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading CR",
"input": "<span contextmenu=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing CR",
"input": "<span contextmenu='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of CR in value",
"input": "<span contextmenu='a b'>",
"fail-unless": "space-in-id"}
]}

View file

@ -0,0 +1,118 @@
{"tests": [
{"description": "valid ID 'a'",
"input": "<span id=a>",
"fail-if": "invalid-attribute-value"},
{"description": "valid ID '1'",
"input": "<span id=1>",
"fail-if": "invalid-attribute-value"},
{"description": "wacky but valid ID",
"input": "<span id='<html><head><title>a</title></head><body><p>b</p></body></html>'>",
"fail-if": "invalid-attribute-value"},
{"description": "invalid blank ID",
"input": "<span id>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid blank ID with quotes",
"input": "<span id=''>",
"fail-unless": "attribute-value-can-not-be-blank"},
{"description": "invalid ID because of leading space",
"input": "<span id=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing space",
"input": "<span id='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of space in value",
"input": "<span id='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading tab",
"input": "<span id=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing tab",
"input": "<span id='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of tab in value",
"input": "<span id='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LF",
"input": "<span id='
a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LF",
"input": "<span id='a
'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LF in value",
"input": "<span id='a
b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading LT",
"input": "<span id=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing LT",
"input": "<span id='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of LT in value",
"input": "<span id='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading FF",
"input": "<span id=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing FF",
"input": "<span id='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of FF in value",
"input": "<span id='a b'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of leading CR",
"input": "<span id=' a'>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of trailing CR",
"input": "<span id='a '>",
"fail-unless": "space-in-id"},
{"description": "invalid ID because of CR in value",
"input": "<span id='a b'>",
"fail-unless": "space-in-id"},
{"description": "duplicate ID values",
"input": "<span id=a><span id=a>",
"fail-unless": "duplicate-id"},
{"description": "duplicate ID values with spaces (weird but true)",
"input": "<span id='a '><span id='a '>",
"fail-unless": "duplicate-id"},
{"description": "not duplicate ID values because spaces don't match",
"input": "<span id=a><span id='a '>",
"fail-if": "duplicate-id"},
{"description": "not duplicate ID values because spaces don't match",
"input": "<span id=' a'><span id='a '>",
"fail-if": "duplicate-id"},
{"description": "not duplicate ID values because case doesn't match",
"input": "<span id=a><span id=A>",
"fail-if": "duplicate-id"}
]}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,375 @@
{"tests": [
{"description": "unknown start tag <foo>",
"input": "<foo>",
"fail-unless": "unknown-start-tag"},
{"description": "allowed start tag <code>",
"input": "<code>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <kbd>",
"input": "<kbd>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <aside>",
"input": "<aside>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <datagrid>",
"input": "<datagrid>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <font>",
"input": "<font>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <noscript>",
"input": "<noscript>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <style>",
"input": "<style>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <img>",
"input": "<img>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <title>",
"input": "<title>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <menu>",
"input": "<menu>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <tr>",
"input": "<tr>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <param>",
"input": "<param>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <li>",
"input": "<li>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <source>",
"input": "<source>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <tfoot>",
"input": "<tfoot>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <th>",
"input": "<th>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <td>",
"input": "<td>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <dl>",
"input": "<dl>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <blockquote>",
"input": "<blockquote>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <dd>",
"input": "<dd>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <abbr>",
"input": "<abbr>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <dt>",
"input": "<dt>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <noembed>",
"input": "<noembed>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <p>",
"input": "<p>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <small>",
"input": "<small>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <meter>",
"input": "<meter>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <em>",
"input": "<em>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <meta>",
"input": "<meta>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <video>",
"input": "<video>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <div>",
"input": "<div>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <canvas>",
"input": "<canvas>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <sub>",
"input": "<sub>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <section>",
"input": "<section>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <sup>",
"input": "<sup>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <progress>",
"input": "<progress>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <body>",
"input": "<body>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <base>",
"input": "<base>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <br>",
"input": "<br>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <address>",
"input": "<address>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <article>",
"input": "<article>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <strong>",
"input": "<strong>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <legend>",
"input": "<legend>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <event-source>",
"input": "<event-source>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <ol>",
"input": "<ol>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <script>",
"input": "<script>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <caption>",
"input": "<caption>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <dialog>",
"input": "<dialog>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <col>",
"input": "<col>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <h2>",
"input": "<h2>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <h3>",
"input": "<h3>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <h1>",
"input": "<h1>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <h6>",
"input": "<h6>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <h4>",
"input": "<h4>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <h5>",
"input": "<h5>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <header>",
"input": "<header>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <table>",
"input": "<table>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <span>",
"input": "<span>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <area>",
"input": "<area>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <dfn>",
"input": "<dfn>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <var>",
"input": "<var>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <cite>",
"input": "<cite>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <thead>",
"input": "<thead>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <head>",
"input": "<head>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <hr>",
"input": "<hr>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <link>",
"input": "<link>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <datatemplate>",
"input": "<datatemplate>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <b>",
"input": "<b>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <colgroup>",
"input": "<colgroup>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <ul>",
"input": "<ul>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <del>",
"input": "<del>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <iframe>",
"input": "<iframe>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <pre>",
"input": "<pre>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <figure>",
"input": "<figure>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <ins>",
"input": "<ins>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <tbody>",
"input": "<tbody>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <html>",
"input": "<html>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <nav>",
"input": "<nav>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <details>",
"input": "<details>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <samp>",
"input": "<samp>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <map>",
"input": "<map>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <nest>",
"input": "<nest>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <object>",
"input": "<object>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <a>",
"input": "<a>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <footer>",
"input": "<footer>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <i>",
"input": "<i>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <m>",
"input": "<m>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <rule>",
"input": "<rule>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <q>",
"input": "<q>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <command>",
"input": "<command>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <time>",
"input": "<time>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <audio>",
"input": "<audio>",
"fail-if": "unknown-start-tag"},
{"description": "allowed start tag <bdo>",
"input": "<bdo>",
"fail-if": "unknown-start-tag"}
]}