<!DOCTYPE html>
<!--
  Copyright 2015 The AMP HTML Authors. All Rights Reserved.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS-IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the license.
--><!--
  Test Description:
  This test validates the complex rules around mandatory dimensions for
  responsive amp custom elements. See
  https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md.
--><html amp><head>
  <meta charset="utf-8">
  <link rel="canonical" href="./regular-html-version.html">
  <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">
  <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
  <script async src="https://cdn.ampproject.org/v0.js"></script>
  <script async custom-element="amp-audio" src="https://cdn.ampproject.org/v0/amp-audio-0.1.js"></script>
  <script async custom-element="amp-lightbox" src="https://cdn.ampproject.org/v0/amp-lightbox-0.1.js"></script>
  <script async custom-element="amp-anim" src="https://cdn.ampproject.org/v0/amp-anim-0.1.js"></script>
  <script async custom-element="amp-iframe" src="https://cdn.ampproject.org/v0/amp-iframe-0.1.js"></script>
  <script async custom-element="amp-fit-text" src="https://cdn.ampproject.org/v0/amp-fit-text-0.1.js"></script>
  <script async custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>
  <script async custom-element="amp-youtube" src="https://cdn.ampproject.org/v0/amp-youtube-0.1.js"></script>
  <script async custom-element="amp-twitter" src="https://cdn.ampproject.org/v0/amp-twitter-0.1.js"></script>
  <script async custom-element="amp-instagram" src="https://cdn.ampproject.org/v0/amp-instagram-0.1.js"></script>
</head>
<body>

  <!-- Valid Examples -->
    <!-- Layout of responsive/fixed with width/height -->
    <amp-img src="img" layout="responsive" width="42" height="42"></amp-img>
    <amp-img src="img" layout="fixed" width="42" height="42"></amp-img>

    <!-- Layout of nodisplay/fill with/without width/height -->
    <amp-img src="img" layout="nodisplay" width="42" height="42"></amp-img>
    <amp-img src="img" layout="fill" width="42" height="42"></amp-img>
    <amp-img src="img" layout="nodisplay"></amp-img>
    <amp-img src="img" layout="fill"></amp-img>

    <!-- Layout of nodisplay/fill with partial width/height.
         These should not validate, but currently do. -->
    <amp-img src="img" layout="nodisplay" width="42"></amp-img>
    <amp-img src="img" layout="fill" height="42"></amp-img>

    <!-- Missing layout implies layout="fixed" when width and height are set. -->
    <amp-img src="img" width="42" height="42"></amp-img>

    <!-- fixed-height layout allows width=auto. -->
    <amp-img layout="fixed-height" src="img" width="auto" height="42"></amp-img>
    <amp-img layout="fixed-height" src="img" height="42"></amp-img>

    <!-- Missing layout implies layout="fixed-height" when height is set. -->
    <amp-img src="img" width="auto" height="42"></amp-img>
    <amp-img src="img" height="42"></amp-img>

    <!-- It's OK to have inconsistent units for layout="fixed" -->
    <amp-img src="img" layout="fixed" width="42px" height="42rem"></amp-img>


    <!-- throw in some fully optional attrs -->
    <amp-img src="img" width="42" height="42" placeholder=""></amp-img>
    <amp-img src="img" layout="nodisplay" alt="" attribution></amp-img>
    <amp-img src="img" layout="fixed" width="42" height="42" on media="">
    </amp-img>

    <!-- amp-audio/pixel/lightbox have relaxed width/heigh constraints -->
    <amp-audio src="https://example.com/audio" layout="fixed" width="42"></amp-audio>
    <amp-audio src="https://example.com/audio" layout="fixed"></amp-audio>
    <amp-pixel src="https://example.com/pixel" layout="fixed" width="42"></amp-pixel>
    <amp-pixel src="https://example.com/pixel" layout="fixed"></amp-pixel>
    <amp-lightbox layout="nodisplay" width="42"></amp-lightbox>
    <amp-lightbox layout="nodisplay"></amp-lightbox>

    <!-- src or srcset or both are all valid -->
    <amp-img width="42" height="42" src="img"></amp-img>
    <amp-img width="42" height="42" srcset="img 1x, img2 2x"></amp-img>
    <amp-img width="42" height="42" src="img" srcset="img 1x, img2 2x"></amp-img>
    <amp-anim width="42" height="42" src="anim"></amp-anim>
    <amp-anim width="42" height="42" srcset="img 1x, img2 2x"></amp-anim>
    <amp-anim width="42" height="42" src="anim" srcset="img 1x, img2 2x"></amp-anim>

    <!-- src optional -->
    <amp-audio src="https://example.com/audio"></amp-audio>
    <amp-audio></amp-audio>
    <amp-video width="42" height="42" src="https://example.com/video"></amp-video>
    <amp-video width="42" height="42"></amp-video>
    <amp-ad width="42" height="42" type="" src="https://example.com/ad"></amp-ad>
    <amp-ad width="42" height="42" type=""></amp-ad>

    <!-- src or srcdoc required -->
    <amp-iframe width="42" height="42" src="https://example.com/iframe"></amp-iframe>
    <amp-iframe width="42" height="42" srcdoc="<p>Hello, world!</p>"></amp-iframe>
    <amp-pixel src="https://example.com/pixel"></amp-pixel>

    <!-- disallow a src or srcset -->
    <amp-fit-text height="42"></amp-fit-text>
    <amp-carousel height="42"></amp-carousel>
    <amp-youtube data-videoid="" height="42"></amp-youtube>
    <amp-twitter data-tweetid="" height="42"></amp-twitter>
    <amp-instagram data-shortcode="" height="42"></amp-instagram>
    <amp-lightbox layout="nodisplay"></amp-lightbox>
  <!-- /Valid Examples -->

  <!-- Invalid Examples -->
    <!-- Container layout isn't supported by amp-img. -->
    <amp-img src="img" layout="responsive"></amp-img>
    <amp-img src="img" width="42" height="42" layout="responsive"></amp-img>
    <amp-img src="img" layout="responsive"></amp-img>

    <!-- Layout of responsive/fixed without width/height -->
    <amp-img src="img" layout="responsive"></amp-img>
    <amp-img src="img" layout="fixed"></amp-img>
    <amp-img src="img" layout="responsive" width="42"></amp-img>
    <amp-img src="img" layout="fixed" height="42"></amp-img>
    <amp-img src="img" layout="fixed"></amp-img>
    <amp-img src="img" layout="fixed" height="42"></amp-img>

    <!-- Inconsistent units -->
    <amp-img src="img" layout="responsive" width="42px" height="42rem"></amp-img>

    <!-- src or srcset or both are all valid -->
    <amp-img width="42" height="42"></amp-img>
    <amp-anim width="42" height="42"></amp-anim>

    <!-- src optional -->
    <amp-audio></amp-audio>
    <amp-ad height="42" type=""></amp-ad>

    <!-- src or srcdoc required -->
    <amp-iframe height="42"></amp-iframe>
    <amp-pixel></amp-pixel>

    <!-- disallow a src or srcset -->
    <amp-fit-text height="42"></amp-fit-text>
    <amp-carousel height="42"></amp-carousel>
    <amp-youtube height="42" data-videoid=""></amp-youtube>
    <amp-twitter height="42" data-tweetid=""></amp-twitter>
    <amp-instagram height="42" data-shortcode=""></amp-instagram>
    <amp-lightbox layout="nodisplay"></amp-lightbox>

    <!-- Not-whitelisted attributes -->
    <amp-img height="42" src="img"></amp-img>
  <!-- /Invalid Examples -->

</body>

</html>


ORIGINAL HTML
---------------
Line   1: <!--
Line   2:   Copyright 2015 The AMP HTML Authors. All Rights Reserved.
Line   3: 
Line   4:   Licensed under the Apache License, Version 2.0 (the "License");
Line   5:   you may not use this file except in compliance with the License.
Line   6:   You may obtain a copy of the License at
Line   7: 
Line   8:       http://www.apache.org/licenses/LICENSE-2.0
Line   9: 
Line  10:   Unless required by applicable law or agreed to in writing, software
Line  11:   distributed under the License is distributed on an "AS-IS" BASIS,
Line  12:   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Line  13:   See the License for the specific language governing permissions and
Line  14:   limitations under the license.
Line  15: -->
Line  16: <!--
Line  17:   Test Description:
Line  18:   This test validates the complex rules around mandatory dimensions for
Line  19:   responsive amp custom elements. See
Line  20:   https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md.
Line  21: -->
Line  22: <!doctype html>
Line  23: <html ⚡>
Line  24: <head>
Line  25:   <meta charset="utf-8">
Line  26:   <link rel="canonical" href="./regular-html-version.html" />
Line  27:   <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,minimal-ui">
Line  28:   <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
Line  29:   <script async src="https://cdn.ampproject.org/v0.js"></script>
Line  30: </head>
Line  31: <body>
Line  32: 
Line  33:   <!-- Valid Examples -->
Line  34:     <!-- Layout of responsive/fixed with width/height -->
Line  35:     <amp-img src="img" layout="responsive" width="42" height="42"></amp-img>
Line  36:     <amp-img src="img" layout="fixed" width="42" height="42"></amp-img>
Line  37: 
Line  38:     <!-- Layout of nodisplay/fill with/without width/height -->
Line  39:     <amp-img src="img" layout="nodisplay" width="42" height="42"></amp-img>
Line  40:     <amp-img src="img" layout="fill" width="42" height="42"></amp-img>
Line  41:     <amp-img src="img" layout="nodisplay"></amp-img>
Line  42:     <amp-img src="img" layout="fill"></amp-img>
Line  43: 
Line  44:     <!-- Layout of nodisplay/fill with partial width/height.
Line  45:          These should not validate, but currently do. -->
Line  46:     <amp-img src="img" layout="nodisplay" width="42"></amp-img>
Line  47:     <amp-img src="img" layout="fill" height="42"></amp-img>
Line  48: 
Line  49:     <!-- Missing layout implies layout="fixed" when width and height are set. -->
Line  50:     <amp-img src="img" width="42" height="42"></amp-img>
Line  51: 
Line  52:     <!-- fixed-height layout allows width=auto. -->
Line  53:     <amp-img layout="fixed-height" src="img" width="auto" height="42"></amp-img>
Line  54:     <amp-img layout="fixed-height" src="img" height="42"></amp-img>
Line  55: 
Line  56:     <!-- Missing layout implies layout="fixed-height" when height is set. -->
Line  57:     <amp-img src="img" width="auto" height="42"></amp-img>
Line  58:     <amp-img src="img" height="42"></amp-img>
Line  59: 
Line  60:     <!-- It's OK to have inconsistent units for layout="fixed" -->
Line  61:     <amp-img src="img" layout="fixed" width="42px" height="42rem"></amp-img>
Line  62: 
Line  63: 
Line  64:     <!-- throw in some fully optional attrs -->
Line  65:     <amp-img src="img" width=42 height=42 placeholder=""></amp-img>
Line  66:     <amp-img src="img" layout="nodisplay" alt="" attribution=""></amp-img>
Line  67:     <amp-img src="img" layout="fixed" width="42" height="42" on="" media="">
Line  68:     </amp-img>
Line  69: 
Line  70:     <!-- amp-audio/pixel/lightbox have relaxed width/heigh constraints -->
Line  71:     <amp-audio src="https://example.com/audio" layout="fixed" width="42"></amp-audio>
Line  72:     <amp-audio src="https://example.com/audio" layout="fixed"></amp-audio>
Line  73:     <amp-pixel src="https://example.com/pixel" layout="fixed" width="42"></amp-pixel>
Line  74:     <amp-pixel src="https://example.com/pixel" layout="fixed"></amp-pixel>
Line  75:     <amp-lightbox layout="nodisplay" width="42"></amp-lightbox>
Line  76:     <amp-lightbox layout="nodisplay"></amp-lightbox>
Line  77: 
Line  78:     <!-- src or srcset or both are all valid -->
Line  79:     <amp-img width="42" height="42" src="img"></amp-img>
Line  80:     <amp-img width="42" height="42" srcset="img 1x, img2 2x"></amp-img>
Line  81:     <amp-img width="42" height="42" src="img" srcset="img 1x, img2 2x"></amp-img>
Line  82:     <amp-anim width="42" height="42" src="anim"></amp-anim>
Line  83:     <amp-anim width="42" height="42" srcset="img 1x, img2 2x"></amp-anim>
Line  84:     <amp-anim width="42" height="42" src="anim" srcset="img 1x, img2 2x"></amp-anim>
Line  85: 
Line  86:     <!-- src optional -->
Line  87:     <amp-audio src="https://example.com/audio"></amp-audio>
Line  88:     <amp-audio></amp-audio>
Line  89:     <amp-video width="42" height="42" src="https://example.com/video"></amp-video>
Line  90:     <amp-video width="42" height="42"></amp-video>
Line  91:     <amp-ad width="42" height="42" type="" src="https://example.com/ad"></amp-ad>
Line  92:     <amp-ad width="42" height="42" type=""></amp-ad>
Line  93: 
Line  94:     <!-- src or srcdoc required -->
Line  95:     <amp-iframe width="42" height="42" src="https://example.com/iframe"></amp-iframe>
Line  96:     <amp-iframe width="42" height="42" srcdoc="<p>Hello, world!</p>"></amp-iframe>
Line  97:     <amp-pixel src="https://example.com/pixel"></amp-pixel>
Line  98: 
Line  99:     <!-- disallow a src or srcset -->
Line 100:     <amp-fit-text height="42"></amp-fit-text>
Line 101:     <amp-carousel height="42"></amp-carousel>
Line 102:     <amp-youtube data-videoid="" height="42"></amp-youtube>
Line 103:     <amp-twitter data-tweetid="" height="42"></amp-twitter>
Line 104:     <amp-instagram data-shortcode="" height="42"></amp-instagram>
Line 105:     <amp-lightbox layout="nodisplay"></amp-lightbox>
Line 106:   <!-- /Valid Examples -->
Line 107: 
Line 108:   <!-- Invalid Examples -->
Line 109:     <!-- Container layout isn't supported by amp-img. -->
Line 110:     <amp-img src="img" layout="container"></amp-img>
Line 111:     <amp-img src="img" layout="container" width="42" height="42"></amp-img>
Line 112:     <amp-img src="img"></amp-img>
Line 113: 
Line 114:     <!-- Layout of responsive/fixed without width/height -->
Line 115:     <amp-img src="img" layout="responsive"></amp-img>
Line 116:     <amp-img src="img" layout="fixed"></amp-img>
Line 117:     <amp-img src="img" layout="responsive" width="42"></amp-img>
Line 118:     <amp-img src="img" layout="fixed" height="42"></amp-img>
Line 119:     <amp-img src="img" layout="fixed" height="auto"></amp-img>
Line 120:     <amp-img src="img" layout="fixed" width="auto" height="42"></amp-img>
Line 121: 
Line 122:     <!-- Inconsistent units -->
Line 123:     <amp-img src="img" layout="responsive" width="42px" height="42rem"></amp-img>
Line 124: 
Line 125:     <!-- src or srcset or both are all valid -->
Line 126:     <amp-img width="42" height="42"></amp-img>
Line 127:     <amp-anim width="42" height="42"></amp-anim>
Line 128: 
Line 129:     <!-- src optional -->
Line 130:     <amp-audio srcset="img 1x, img2 2x"></amp-audio>
Line 131:     <amp-ad height="42" type="" srcset="img 1x, img2 2x"></amp-ad>
Line 132: 
Line 133:     <!-- src or srcdoc required -->
Line 134:     <amp-iframe height="42"></amp-iframe>
Line 135:     <amp-pixel></amp-pixel>
Line 136: 
Line 137:     <!-- disallow a src or srcset -->
Line 138:     <amp-fit-text height="42" src="fit-text"></amp-fit-text>
Line 139:     <amp-carousel height="42" src="carousel"></amp-carousel>
Line 140:     <amp-youtube height="42" data-videoid="" srcset="img 1x, img2 2x"></amp-youtube>
Line 141:     <amp-twitter height="42" data-tweetid="" srcset="img 1x, img2 2x"></amp-twitter>
Line 142:     <amp-instagram height="42" data-shortcode="" srcset="img 1x, img2 2x"></amp-instagram>
Line 143:     <amp-lightbox layout="nodisplay" src="lightbox"></amp-lightbox>
Line 144: 
Line 145:     <!-- Not-whitelisted attributes -->
Line 146:     <amp-img height="42" src="img" foo="bar"></amp-img>
Line 147:   <!-- /Invalid Examples -->
Line 148: 
Line 149: </body>
Line 150: </html>
Line 151: 



AMP-HTML Validation Issues and Fixes
-------------------------------------
FAIL

<amp-img src="img" layout="container"> on line 110
- The specified layout 'CONTAINER' is not supported by tag 'amp-img'.
   [code: SPECIFIED_LAYOUT_INVALID  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img tried to fix problems with amp-img by setting layout to responsive

<amp-img src="img" layout="container" width="42" height="42"> on line 111
- The specified layout 'CONTAINER' is not supported by tag 'amp-img'.
   [code: SPECIFIED_LAYOUT_INVALID  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img tried to fix problems with amp-img by trying to fetch height, width from image directly and/or setting layout to responsive

<amp-img src="img"> on line 112
- The implied layout 'CONTAINER' is not supported by tag 'amp-img'.
   [code: IMPLIED_LAYOUT_INVALID  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img tried to fix problems with amp-img by setting layout to responsive

<amp-img src="img" layout="responsive"> on line 115
- The mandatory attribute 'height' is missing in tag 'amp-img'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]

<amp-img src="img" layout="fixed"> on line 116
- The mandatory attribute 'height' is missing in tag 'amp-img'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]

<amp-img src="img" layout="responsive" width="42"> on line 117
- The mandatory attribute 'height' is missing in tag 'amp-img'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img tried to fix problems with amp-img by trying to fetch height, width from image directly and/or setting layout to responsive

<amp-img src="img" layout="fixed" height="42"> on line 118
- The mandatory attribute 'width' is missing in tag 'amp-img'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]

<amp-img src="img" layout="fixed" height="auto"> on line 119
- The attribute 'height' in tag 'amp-img' is set to the invalid value 'auto'.
   [code: INVALID_ATTR_VALUE  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img.height attribute was removed due to validation issues.

<amp-img src="img" layout="fixed" width="auto" height="42"> on line 120
- The attribute 'width' in tag 'amp-img' is set to the invalid value 'auto'.
   [code: INVALID_ATTR_VALUE  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img.width attribute was removed due to validation issues.

<amp-img src="img" layout="responsive" width="42px" height="42rem"> on line 123
- Inconsistent units for width and height in tag 'amp-img' - width is specified in 'px' whereas height is specified in 'rem'.
   [code: INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT  category: AMP_LAYOUT_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]

<amp-img width="42" height="42"> on line 126
- The mandatory attribute 'src' is missing in tag 'amp-img'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]

<amp-anim width="42" height="42"> on line 127
- The mandatory attribute 'src' is missing in tag 'amp-anim'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-anim.html]

<amp-audio srcset="img 1x, img2 2x"> on line 130
- The attribute 'srcset' may not appear in tag 'amp-audio'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-audio.html]
   ACTION TAKEN: amp-audio.srcset attribute was removed due to validation issues.

<amp-ad height="42" type srcset="img 1x, img2 2x"> on line 131
- The attribute 'srcset' may not appear in tag 'amp-ad'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/amp-ad.html]
   ACTION TAKEN: amp-ad.srcset attribute was removed due to validation issues.

<amp-iframe height="42"> on line 134
- The tag 'amp-iframe' is missing a mandatory attribute - pick one of ['src', 'srcdoc'].
   [code: MANDATORY_ONEOF_ATTR_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-iframe.html]

<amp-pixel> on line 135
- The mandatory attribute 'src' is missing in tag 'amp-pixel'.
   [code: MANDATORY_ATTR_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/amp-pixel.html]

<amp-fit-text height="42" src="fit-text"> on line 138
- The attribute 'src' may not appear in tag 'amp-fit-text'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-fit-text.html]
   ACTION TAKEN: amp-fit-text.src attribute was removed due to validation issues.

<amp-carousel height="42" src="carousel"> on line 139
- The attribute 'src' may not appear in tag 'amp-carousel'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-carousel.html]
   ACTION TAKEN: amp-carousel.src attribute was removed due to validation issues.

<amp-youtube height="42" data-videoid srcset="img 1x, img2 2x"> on line 140
- The attribute 'srcset' may not appear in tag 'amp-youtube'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-youtube.html]
   ACTION TAKEN: amp-youtube.srcset attribute was removed due to validation issues.

<amp-twitter height="42" data-tweetid srcset="img 1x, img2 2x"> on line 141
- The attribute 'srcset' may not appear in tag 'amp-twitter'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-twitter.html]
   ACTION TAKEN: amp-twitter.srcset attribute was removed due to validation issues.

<amp-instagram height="42" data-shortcode srcset="img 1x, img2 2x"> on line 142
- The attribute 'srcset' may not appear in tag 'amp-instagram'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-instagram.html]
   ACTION TAKEN: amp-instagram.srcset attribute was removed due to validation issues.

<amp-lightbox layout="nodisplay" src="lightbox"> on line 143
- The attribute 'src' may not appear in tag 'amp-lightbox'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-lightbox.html]
   ACTION TAKEN: amp-lightbox.src attribute was removed due to validation issues.

<amp-img height="42" src="img" foo="bar"> on line 146
- The attribute 'foo' may not appear in tag 'amp-img'.
   [code: DISALLOWED_ATTR  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/amp-img.html]
   ACTION TAKEN: amp-img.foo attribute was removed due to validation issues.

GLOBAL WARNING
- The tag 'amp-audio extension .js script' is missing or incorrect, but required by 'amp-audio'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-audio.html]
   ACTION TAKEN: amp-audio custom component script tag added to head
- The tag 'amp-lightbox extension .js script' is missing or incorrect, but required by 'amp-lightbox'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-lightbox.html]
   ACTION TAKEN: amp-lightbox custom component script tag added to head
- The tag 'amp-anim extension .js script' is missing or incorrect, but required by 'amp-anim'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-anim.html]
   ACTION TAKEN: amp-anim custom component script tag added to head
- The tag 'amp-iframe extension .js script' is missing or incorrect, but required by 'amp-iframe'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-iframe.html]
   ACTION TAKEN: amp-iframe custom component script tag added to head
- The tag 'amp-fit-text extension .js script' is missing or incorrect, but required by 'amp-fit-text'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-fit-text.html]
   ACTION TAKEN: amp-fit-text custom component script tag added to head
- The tag 'amp-carousel extension .js script' is missing or incorrect, but required by 'amp-carousel'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-carousel.html]
   ACTION TAKEN: amp-carousel custom component script tag added to head
- The tag 'amp-youtube extension .js script' is missing or incorrect, but required by 'amp-youtube'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-youtube.html]
   ACTION TAKEN: amp-youtube custom component script tag added to head
- The tag 'amp-twitter extension .js script' is missing or incorrect, but required by 'amp-twitter'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-twitter.html]
   ACTION TAKEN: amp-twitter custom component script tag added to head
- The tag 'amp-instagram extension .js script' is missing or incorrect, but required by 'amp-instagram'.
   [code: TAG_REQUIRED_BY_MISSING  category: AMP_TAG_PROBLEM see: https://www.ampproject.org/docs/reference/extended/amp-instagram.html]
   ACTION TAKEN: amp-instagram custom component script tag added to head

COMPONENT NAMES WITH JS PATH
------------------------------
'amp-audio', include path 'https://cdn.ampproject.org/v0/amp-audio-0.1.js'
'amp-lightbox', include path 'https://cdn.ampproject.org/v0/amp-lightbox-0.1.js'
'amp-anim', include path 'https://cdn.ampproject.org/v0/amp-anim-0.1.js'
'amp-iframe', include path 'https://cdn.ampproject.org/v0/amp-iframe-0.1.js'
'amp-fit-text', include path 'https://cdn.ampproject.org/v0/amp-fit-text-0.1.js'
'amp-carousel', include path 'https://cdn.ampproject.org/v0/amp-carousel-0.1.js'
'amp-youtube', include path 'https://cdn.ampproject.org/v0/amp-youtube-0.1.js'
'amp-twitter', include path 'https://cdn.ampproject.org/v0/amp-twitter-0.1.js'
'amp-instagram', include path 'https://cdn.ampproject.org/v0/amp-instagram-0.1.js'

