on' => array(), 'data-amp-bind-size' => array(), 'data-amp-bind-spellcheck' => array(), 'data-amp-bind-step' => array(), 'data-amp-bind-type' => array(), 'data-amp-bind-value' => array(), 'data-amp-bind-width' => array(), 'disabled' => array(), 'enterkeyhint' => array(), 'height' => array(), 'inputmode' => array(), 'list' => array(), 'mask' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value' => array( 'date-yyyy-mm-dd', ), ), 'mask-output' => array(), 'max' => array(), 'maxlength' => array(), 'min' => array(), 'minlength' => array(), 'multiple' => array(), 'name' => array( 'disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', ), 'pattern' => array(), 'placeholder' => array(), 'readonly' => array(), 'required' => array(), 'selectiondirection' => array(), 'size' => array(), 'spellcheck' => array(), 'step' => array(), 'tabindex' => array(), 'type' => array( 'value' => array( 'text', 'tel', 'search', ), ), 'value' => array(), 'width' => array(), ), 'tag_spec' => array( 'requires_extension' => array( 'amp-inputmask', ), 'spec_name' => 'input [mask=date-yyyy-mm-dd]', 'spec_url' => 'https://amp.dev/documentation/components/amp-inputmask/', ), ), ), 'ins' => array( array( 'attr_spec_list' => array( 'cite' => array( 'disallowed_value_regex' => '__amp_source_origin', 'value_url' => array( 'allow_empty' => true, 'protocol' => array( 'http', 'https', ), ), ), 'datetime' => array(), ), 'tag_spec' => array(), ), ), 'kbd' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'label' => array( array( 'attr_spec_list' => array( 'for' => array(), ), 'tag_spec' => array( 'spec_url' => 'https://amp.dev/documentation/components/amp-form/', ), ), ), 'legend' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'li' => array( array( 'attr_spec_list' => array( 'value' => array( 'value_regex' => '[0-9]*', ), ), 'tag_spec' => array(), ), ), 'line' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x1' => array(), 'x2' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y1' => array(), 'y2' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'lineargradient' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'gradienttransform' => array(), 'gradientunits' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'shape-rendering' => array(), 'spreadmethod' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x1' => array(), 'x2' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array( 'alternative_names' => array( 'href', ), 'value_url' => array( 'allow_empty' => false, 'protocol' => array( 'http', 'https', ), ), ), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y1' => array(), 'y2' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'link' => array( array( 'attr_spec_list' => array( 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array(), 'hreflang' => array(), 'media' => array(), 'rel' => array( 'disallowed_value_regex' => '(^|\\s)(canonical|components|import|manifest|modulepreload|preload|serviceworker|stylesheet|subresource)(\\s|$)', 'mandatory' => true, ), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'disallowed_ancestor' => array( 'template', ), 'spec_name' => 'link rel=', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array( 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => true, 'value_url' => array( 'protocol' => array( 'http', 'https', ), ), ), 'hreflang' => array(), 'media' => array(), 'rel' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'canonical', ), ), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'mandatory' => true, 'mandatory_parent' => 'head', 'spec_name' => 'link rel=canonical', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array( 'disallowed_value_regex' => '__amp_source_origin', 'mandatory' => true, 'value_url' => array( 'protocol' => array( 'https', ), ), ), 'hreflang' => array(), 'media' => array(), 'rel' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'manifest', ), ), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'link rel=manifest', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'as' => array( 'mandatory' => true, 'value' => array( 'script', ), ), 'crossorigin' => array( 'mandatory' => true, 'value' => array( 'anonymous', ), ), 'href' => array( 'mandatory' => true, 'value_regex' => '.*\\.mjs$', ), 'rel' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'modulepreload', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'link rel=modulepreload', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'as' => array(), 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array(), 'hreflang' => array(), 'imagesizes' => array(), 'imagesrcset' => array( 'disallowed_value_regex' => '__amp_source_origin', 'value_url' => array( 'protocol' => array( 'http', 'https', ), ), ), 'media' => array(), 'rel' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'preload', ), ), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'disallowed_ancestor' => array( 'template', ), 'spec_name' => 'link rel=preload', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'async' => array(), 'crossorigin' => array(), 'href' => array( 'mandatory' => true, 'value_regex' => 'https://cdn\\.materialdesignicons\\.com/([0-9]+\\.?)+/css/materialdesignicons\\.min\\.css|https://cloud\\.typography\\.com/[0-9]*/[0-9]*/css/fonts\\.css|https://fast\\.fonts\\.net/.*|https://fonts\\.googleapis\\.com/css2?\\?.*|https://fonts\\.googleapis\\.com/icon\\?.*|https://fonts\\.googleapis\\.com/earlyaccess/.*\\.css|https://maxcdn\\.bootstrapcdn\\.com/font-awesome/([0-9]+\\.?)+/css/font-awesome\\.min\\.css(\\?.*)?|https://(use|pro|kit)\\.fontawesome\\.com/releases/v([0-9]+\\.?)+/css/[0-9a-zA-Z-]+\\.css|https://(use|pro|kit)\\.fontawesome\\.com/[0-9a-zA-Z-]+\\.css|https://use\\.typekit\\.net/[\\w\\p{L}\\p{N}_]+\\.css', ), 'integrity' => array(), 'media' => array(), 'nonce' => array(), 'rel' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'stylesheet', ), ), 'type' => array( 'value_casei' => array( 'text/css', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'link rel=stylesheet for fonts', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#custom-fonts', ), ), array( 'attr_spec_list' => array( 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array( 'mandatory' => true, ), 'hreflang' => array(), 'itemprop' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'sameas', ), ), 'media' => array(), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'spec_name' => 'link itemprop=sameAs', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array( 'mandatory' => true, ), 'hreflang' => array(), 'itemprop' => array( 'mandatory' => true, ), 'media' => array(), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'spec_name' => 'link itemprop=', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'charset' => array( 'value_casei' => array( 'utf-8', ), ), 'color' => array(), 'crossorigin' => array(), 'href' => array( 'mandatory' => true, ), 'hreflang' => array(), 'media' => array(), 'property' => array( 'mandatory' => true, ), 'sizes' => array(), 'target' => array(), 'type' => array(), ), 'tag_spec' => array( 'spec_name' => 'link property=', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), ), 'listing' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'main' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'mark' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'marker' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'markerheight' => array(), 'markerunits' => array(), 'markerwidth' => array(), 'mask' => array(), 'opacity' => array(), 'orient' => array(), 'overflow' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'refx' => array(), 'refy' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'viewbox' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'mask' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'maskcontentunits' => array(), 'maskunits' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'meta' => array( array( 'attr_spec_list' => array( 'charset' => array( 'dispatch_key' => 1, 'mandatory' => true, 'value_casei' => array( 'utf-8', ), ), ), 'tag_spec' => array( 'mandatory' => true, 'mandatory_parent' => 'head', 'spec_name' => 'meta charset=utf-8', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_properties' => array( 'height' => array(), 'initial-scale' => array(), 'maximum-scale' => array(), 'minimum-scale' => array(), 'shrink-to-fit' => array(), 'user-scalable' => array(), 'viewport-fit' => array(), 'width' => array( 'mandatory' => true, 'value' => 'device-width', ), ), ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value' => array( 'viewport', ), ), ), 'tag_spec' => array( 'mandatory' => true, 'mandatory_parent' => 'head', 'spec_name' => 'meta name=viewport', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_properties' => array( 'chrome' => array( 'value' => '1', ), 'ie' => array( 'value' => 'edge', ), ), ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'x-ua-compatible', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=X-UA-Compatible', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_regex' => '.*app-id=.*', ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'apple-itunes-app', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=apple-itunes-app', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-experiments-opt-in', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-experiments-opt-in', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_url' => array( 'protocol' => array( 'https', ), ), ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-3p-iframe-src', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-3p-iframe-src', 'spec_url' => 'https://amp.dev/documentation/components/amp-ad/', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-consent-blocking', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-consent-blocking', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-experiment-token', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-experiment-token', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-link-variable-allowed-origin', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-link-variable-allowed-origin', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-google-client-id-api', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-google-clientid-id-api', ), ), array( 'attr_spec_list' => array( 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-ad-doubleclick-sra', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-ad-doubleclick-sra', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-list-load-more', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-list-load-more', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-recaptcha-input', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-recaptcha-input', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-script-src', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-script-src', ), ), array( 'attr_spec_list' => array( 'content' => array(), 'itemprop' => array(), 'name' => array( 'disallowed_value_regex' => '(^|\\s)(amp-.*|amp4ads-.*|apple-itunes-app|content-disposition|revisit-after|viewport)(\\s|$)', ), 'property' => array(), 'scheme' => array(), ), 'tag_spec' => array( 'spec_name' => 'meta name= and content=', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_casei' => array( 'text/html; charset=utf-8', ), ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'content-type', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=Content-Type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'content-language', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=content-language', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'pics-label', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=pics-label', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'imagetoolbar', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=imagetoolbar', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_casei' => array( 'text/css', ), ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'content-style-type', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=Content-Style-Type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_casei' => array( 'text/javascript', ), ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'content-script-type', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=Content-Script-Type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'origin-trial', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=origin-trial', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'resource-type', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=resource-type', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, 'value_casei' => array( 'off', 'on', ), ), 'http-equiv' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'x-dns-prefetch-control', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta http-equiv=x-dns-prefetch-control', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#html-tags', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-ad-enable-refresh', ), ), ), 'tag_spec' => array( 'mandatory_ancestor' => 'head', 'spec_name' => 'meta name=amp-ad-enable-refresh', ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'amp-to-amp-navigation', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-to-amp-navigation', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'mandatory' => true, 'value_casei' => array( 'amp-story-generator-name', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-story-generator-name', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'content' => array( 'mandatory' => true, ), 'name' => array( 'mandatory' => true, 'value_casei' => array( 'amp-story-generator-version', ), ), ), 'tag_spec' => array( 'mandatory_parent' => 'head', 'spec_name' => 'meta name=amp-story-generator-version', 'unique' => true, ), ), ), 'metadata' => array( array( 'attr_spec_list' => array( 'style' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'meter' => array( array( 'attr_spec_list' => array( 'high' => array(), 'low' => array(), 'max' => array(), 'min' => array(), 'optimum' => array(), 'value' => array(), ), 'tag_spec' => array(), ), ), 'multicol' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'nav' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), array( 'attr_spec_list' => array( 'toolbar' => array( 'dispatch_key' => 1, 'mandatory' => true, ), 'toolbar-target' => array( 'mandatory' => true, ), ), 'tag_spec' => array( 'child_tags' => array( 'child_tag_name_oneof' => array( 'ol', 'ul', ), 'mandatory_num_child_tags' => 1, ), 'mandatory_parent' => 'amp-sidebar', 'spec_name' => 'amp-sidebar > nav', ), ), ), 'nextid' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'nobr' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'noscript' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array( 'mandatory' => true, 'mandatory_parent' => 'head', 'spec_name' => 'noscript enclosure for boilerplate', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amp-boilerplate/?format=websites', 'unique' => true, ), ), array( 'attr_spec_list' => array(), 'tag_spec' => array( 'disallowed_ancestor' => array( 'noscript', ), 'mandatory_ancestor' => 'body', ), ), ), 'o:p' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'ol' => array( array( 'attr_spec_list' => array( 'reversed' => array( 'value' => array( '', ), ), 'start' => array( 'value_regex' => '[0-9]*', ), 'type' => array( 'value_regex' => '[1AaIi]', ), ), 'tag_spec' => array(), ), ), 'optgroup' => array( array( 'attr_spec_list' => array( 'data-amp-bind-disabled' => array(), 'data-amp-bind-label' => array(), 'disabled' => array(), 'label' => array(), ), 'tag_spec' => array( 'mandatory_parent' => 'select', 'spec_url' => 'https://amp.dev/documentation/components/amp-form/', ), ), ), 'option' => array( array( 'attr_spec_list' => array( 'data-amp-bind-disabled' => array(), 'data-amp-bind-label' => array(), 'data-amp-bind-selected' => array(), 'data-amp-bind-value' => array(), 'disabled' => array(), 'label' => array(), 'selected' => array(), 'value' => array(), ), 'tag_spec' => array( 'spec_url' => 'https://amp.dev/documentation/components/amp-form/', ), ), ), 'output' => array( array( 'attr_spec_list' => array( 'for' => array(), 'form' => array(), 'name' => array( 'disallowed_value_regex' => '(^|\\s)(__amp_\\S*|__count__|__defineGetter__|__defineSetter__|__lookupGetter__|__lookupSetter__|__noSuchMethod__|__parent__|__proto__|__AMP_\\S*|\\$p|\\$proxy|acceptCharset|addEventListener|appendChild|assignedSlot|attachShadow|baseURI|checkValidity|childElementCount|childNodes|classList|className|clientHeight|clientLeft|clientTop|clientWidth|compareDocumentPosition|computedName|computedRole|contentEditable|createShadowRoot|enqueAction|firstChild|firstElementChild|getAnimations|getAttribute|getAttributeNS|getAttributeNode|getAttributeNodeNS|getBoundingClientRect|getClientRects|getDestinationInsertionPoints|getElementsByClassName|getElementsByTagName|getElementsByTagNameNS|getRootNode|hasAttribute|hasAttributeNS|hasAttributes|hasChildNodes|hasPointerCapture|innerHTML|innerText|inputMode|insertAdjacentElement|insertAdjacentHTML|insertAdjacentText|isContentEditable|isDefaultNamespace|isEqualNode|isSameNode|lastChild|lastElementChild|lookupNamespaceURI|namespaceURI|nextElementSibling|nextSibling|nodeName|nodeType|nodeValue|offsetHeight|offsetLeft|offsetParent|offsetTop|offsetWidth|outerHTML|outerText|ownerDocument|parentElement|parentNode|previousElementSibling|previousSibling|querySelector|querySelectorAll|releasePointerCapture|removeAttribute|removeAttributeNS|removeAttributeNode|removeChild|removeEventListener|replaceChild|reportValidity|requestPointerLock|scrollHeight|scrollIntoView|scrollIntoViewIfNeeded|scrollLeft|scrollWidth|setAttribute|setAttributeNS|setAttributeNode|setAttributeNodeNS|setPointerCapture|shadowRoot|styleMap|tabIndex|tagName|textContent|toString|valueOf|(webkit|ms|moz|o)dropzone|(webkit|moz|ms|o)MatchesSelector|(webkit|moz|ms|o)RequestFullScreen|(webkit|moz|ms|o)RequestFullscreen)(\\s|$)', ), ), 'tag_spec' => array(), ), ), 'p' => array( array( 'attr_spec_list' => array( 'align' => array(), ), 'tag_spec' => array(), ), ), 'path' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'd' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pathlength' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'pattern' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'patterncontentunits' => array(), 'patterntransform' => array(), 'patternunits' => array(), 'pointer-events' => array(), 'preserveaspectratio' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'viewbox' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array( 'alternative_names' => array( 'href', ), 'value_url' => array( 'allow_empty' => false, 'protocol' => array( 'http', 'https', ), ), ), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'picture' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array( 'mandatory_parent' => 'noscript', 'spec_url' => 'https://amp.dev/documentation/components/amp-img/', ), ), ), 'polygon' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'points' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'polyline' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'points' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'pre' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'progress' => array( array( 'attr_spec_list' => array( 'max' => array(), 'value' => array(), ), 'tag_spec' => array(), ), ), 'q' => array( array( 'attr_spec_list' => array( 'cite' => array( 'disallowed_value_regex' => '__amp_source_origin', 'value_url' => array( 'allow_empty' => true, 'protocol' => array( 'http', 'https', ), ), ), ), 'tag_spec' => array(), ), ), 'radialgradient' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'cx' => array(), 'cy' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'fr' => array(), 'fx' => array(), 'fy' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'gradienttransform' => array(), 'gradientunits' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'r' => array(), 'shape-rendering' => array(), 'spreadmethod' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'xlink:actuate' => array(), 'xlink:arcrole' => array(), 'xlink:href' => array( 'alternative_names' => array( 'href', ), 'value_url' => array( 'allow_empty' => false, 'protocol' => array( 'http', 'https', ), ), ), 'xlink:role' => array(), 'xlink:show' => array(), 'xlink:title' => array(), 'xlink:type' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'rb' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'rect' => array( array( 'attr_spec_list' => array( 'alignment-baseline' => array(), 'baseline-shift' => array(), 'clip' => array(), 'clip-path' => array(), 'clip-rule' => array(), 'color' => array(), 'color-interpolation' => array(), 'color-interpolation-filters' => array(), 'color-profile' => array(), 'color-rendering' => array(), 'cursor' => array(), 'direction' => array(), 'display' => array(), 'dominant-baseline' => array(), 'enable-background' => array(), 'externalresourcesrequired' => array(), 'fill' => array(), 'fill-opacity' => array(), 'fill-rule' => array(), 'filter' => array(), 'flood-color' => array(), 'flood-opacity' => array(), 'focusable' => array(), 'font-family' => array(), 'font-size' => array(), 'font-size-adjust' => array(), 'font-stretch' => array(), 'font-style' => array(), 'font-variant' => array(), 'font-weight' => array(), 'glyph-orientation-horizontal' => array(), 'glyph-orientation-vertical' => array(), 'height' => array(), 'image-rendering' => array(), 'kerning' => array(), 'letter-spacing' => array(), 'lighting-color' => array(), 'marker-end' => array(), 'marker-mid' => array(), 'marker-start' => array(), 'mask' => array(), 'opacity' => array(), 'overflow' => array(), 'pointer-events' => array(), 'requiredextensions' => array(), 'requiredfeatures' => array(), 'rx' => array(), 'ry' => array(), 'shape-rendering' => array(), 'sketch:type' => array(), 'stop-color' => array(), 'stop-opacity' => array(), 'stroke' => array(), 'stroke-dasharray' => array(), 'stroke-dashoffset' => array(), 'stroke-linecap' => array(), 'stroke-linejoin' => array(), 'stroke-miterlimit' => array(), 'stroke-opacity' => array(), 'stroke-width' => array(), 'style' => array(), 'systemlanguage' => array(), 'text-anchor' => array(), 'text-decoration' => array(), 'text-rendering' => array(), 'transform' => array(), 'unicode-bidi' => array(), 'vector-effect' => array(), 'visibility' => array(), 'width' => array(), 'word-spacing' => array(), 'writing-mode' => array(), 'x' => array(), 'xml:lang' => array(), 'xml:space' => array(), 'xmlns' => array(), 'xmlns:xlink' => array(), 'y' => array(), ), 'tag_spec' => array( 'mandatory_ancestor' => 'svg', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#svg', ), ), ), 'rp' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'rt' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'rtc' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'ruby' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 's' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'samp' => array( array( 'attr_spec_list' => array(), 'tag_spec' => array(), ), ), 'script' => array( array( 'attr_spec_list' => array( 'async' => array( 'mandatory' => true, 'value' => array( '', ), ), 'crossorigin' => array( 'value' => array( 'anonymous', ), ), 'nonce' => array(), 'src' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value' => array( 'https://cdn.ampproject.org/v0.js', ), ), 'type' => array( 'value_casei' => array( 'text/javascript', ), ), ), 'cdata' => array( 'disallowed_cdata_regex' => array( array( 'error_message' => 'contents', 'regex' => '.', ), ), ), 'tag_spec' => array( 'mandatory_alternatives' => 'amphtml engine script', 'mandatory_parent' => 'head', 'spec_name' => 'amphtml engine script', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'async' => array( 'mandatory' => true, 'value' => array( '', ), ), 'crossorigin' => array( 'value' => array( 'anonymous', ), ), 'nonce' => array(), 'src' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value' => array( 'https://cdn.ampproject.org/lts/v0.js', ), ), 'type' => array( 'value_casei' => array( 'text/javascript', ), ), ), 'cdata' => array( 'disallowed_cdata_regex' => array( array( 'error_message' => 'contents', 'regex' => '.', ), ), ), 'tag_spec' => array( 'mandatory_alternatives' => 'amphtml engine script', 'mandatory_parent' => 'head', 'spec_name' => 'amphtml engine script (LTS)', 'spec_url' => 'https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/#required-markup', 'unique' => true, ), ), array( 'attr_spec_list' => array( 'nonce' => array(), 'type' => array( 'dispatch_key' => 2, 'mandatory' => true, 'value_casei' => array( 'application/ld+json', ), ), ), 'cdata' => array( 'disallowed_cdata_regex' => array( array( 'error_message' => 'html comments', 'regex' => '