This is page 22 of 24. Use http://codebase.md/cloudflare/docs/imgs/%7B%7Bg.doc('/content/latest/%7B%7Bg.doc(secondaryCollection.navigation.next.href,%20locale=doc.locale).url.path%7D%7D?format=md&lines=true&page={x} to view the full context.

# Directory Structure

```
├── .editorconfig
├── .eslintrc.json
├── .firebaserc
├── .github
│   └── workflows
│       └── semgrep.yml
├── .gitignore
├── .travis.yml
├── assets
│   ├── extra
│   │   └── brand_assets.zip
│   ├── img
│   │   ├── about
│   │   │   ├── case-studies
│   │   │   │   └── bg_lines.png
│   │   │   ├── design-principles
│   │   │   │   ├── bg1.svg
│   │   │   │   ├── bg2.svg
│   │   │   │   ├── design_icon_break.svg
│   │   │   │   ├── design_icon_fast.svg
│   │   │   │   ├── design_icon_future.svg
│   │   │   │   ├── design_icon_layers.svg
│   │   │   │   ├── design_icon_priorities.svg
│   │   │   │   ├── design_icon_ux.svg
│   │   │   │   ├── design_icon_whitelist.svg
│   │   │   │   ├── lines1.svg
│   │   │   │   └── lines2.svg
│   │   │   ├── how-amp-works
│   │   │   │   ├── line_behind.svg
│   │   │   │   └── lines_front.svg
│   │   │   ├── overview
│   │   │   │   ├── bg2.svg
│   │   │   │   ├── herobg.svg
│   │   │   │   ├── herolines1.svg
│   │   │   │   ├── herolines2.svg
│   │   │   │   ├── line4.svg
│   │   │   │   ├── lines3.svg
│   │   │   │   ├── what_phone.png
│   │   │   │   ├── what_phone@1_5x.png
│   │   │   │   └── what_phone@1x.png
│   │   │   └── who-use-amp
│   │   │       ├── adtech
│   │   │       │   ├── adtech_icon_customize.svg
│   │   │       │   ├── adtech_icon_intro.svg
│   │   │       │   ├── adtech_icon_reach.svg
│   │   │       │   ├── adtech_icon_revenue.svg
│   │   │       │   ├── indexexchange_logo.png
│   │   │       │   ├── lines.svg
│   │   │       │   ├── sharethrough_logo.png
│   │   │       │   ├── teads_logo.svg
│   │   │       │   └── triplelift_logo.png
│   │   │       ├── advertisers
│   │   │       │   ├── advertiser_phone_wired.png
│   │   │       │   ├── advertiser_phone_wired@1_5x.png
│   │   │       │   ├── advertiser_phone_wired@1x.png
│   │   │       │   ├── advertisers_bg.svg
│   │   │       │   ├── advertisers_icon_audience.svg
│   │   │       │   ├── advertisers_icon_everywhere.svg
│   │   │       │   ├── advertisers_icon_intro.svg
│   │   │       │   ├── advertisers_icon_ROI.svg
│   │   │       │   └── advertisers_lines.svg
│   │   │       ├── amp-ads
│   │   │       │   ├── ads_icon.svg
│   │   │       │   ├── cloudflare_logo.png
│   │   │       │   ├── doubleclick_logo.png
│   │   │       │   ├── google_logo.png
│   │   │       │   ├── lines_bottom1.svg
│   │   │       │   ├── lines_bottom2.svg
│   │   │       │   ├── lines.svg
│   │   │       │   ├── roi_icon.svg
│   │   │       │   ├── speed_icon.svg
│   │   │       │   └── triplelift_logo.png
│   │   │       ├── card_developers.png
│   │   │       ├── card_developers.svg
│   │   │       ├── card_smb.png
│   │   │       ├── card_smb.svg
│   │   │       ├── hero_triangle.png
│   │   │       ├── publishers
│   │   │       │   ├── globo_logo.svg
│   │   │       │   ├── nyt_logo.svg
│   │   │       │   ├── publisher_icon_business.svg
│   │   │       │   ├── publisher_icon_fast.svg
│   │   │       │   ├── publisher_icon_intro.svg
│   │   │       │   ├── publisher_icon_simple.svg
│   │   │       │   ├── publisher_phone_cnn.png
│   │   │       │   ├── publisher_phone_cnn@1_5x.png
│   │   │       │   ├── publisher_phone_cnn@1x.png
│   │   │       │   ├── wapo_logo.png
│   │   │       │   └── wired_logo.png
│   │   │       ├── who_icon_adtech.svg
│   │   │       ├── who_icon_advertisers.svg
│   │   │       ├── who_icon_publishers.svg
│   │   │       ├── who_lines1.svg
│   │   │       ├── who_lines2.svg
│   │   │       ├── who_phones_hero.png
│   │   │       ├── who_phones_hero@1_5x.png
│   │   │       └── who_phones_hero@1x.png
│   │   ├── amp_favicon.png
│   │   ├── amp-conf
│   │   │   └── speakers
│   │   │       ├── alex.jpg
│   │   │       ├── ali.jpg
│   │   │       ├── ardan.jpg
│   │   │       ├── beck.jpg
│   │   │       ├── bez.jpg
│   │   │       ├── chen.jpg
│   │   │       ├── dane.jpg
│   │   │       ├── eric.jpg
│   │   │       ├── gina.jpg
│   │   │       ├── honey.jpg
│   │   │       ├── jeremy.jpg
│   │   │       ├── john.jpg
│   │   │       ├── le.jpg
│   │   │       ├── madison.jpg
│   │   │       ├── malte.jpg
│   │   │       ├── malteandrudy.jpg
│   │   │       ├── mariko.jpg
│   │   │       ├── matthew.jpg
│   │   │       ├── mike.jpg
│   │   │       ├── natalia.jpg
│   │   │       ├── nicole.jpg
│   │   │       ├── paul.jpg
│   │   │       ├── ranna.jpg
│   │   │       ├── richard.jpg
│   │   │       ├── rudy.jpg
│   │   │       ├── sam.jpg
│   │   │       ├── sarah.jpg
│   │   │       ├── sebastian.jpg
│   │   │       ├── senthil.jpg
│   │   │       ├── sriram.jpg
│   │   │       ├── vadim.jpg
│   │   │       ├── vamsee.jpg
│   │   │       ├── will.jpg
│   │   │       └── yamini.jpg
│   │   ├── arrow-blue.svg
│   │   ├── arrow.svg
│   │   ├── background.jpg
│   │   ├── blog-icon.svg
│   │   ├── brand-guidelines.pdf
│   │   ├── case-studies
│   │   │   ├── gizmodo_logo.png
│   │   │   ├── gizmodo_phone1.png
│   │   │   ├── gizmodo_phone1@1_5x.png
│   │   │   ├── gizmodo_phone1@1x.png
│   │   │   ├── gizmodo_phone2.png
│   │   │   ├── gizmodo_phone2@1_5x.png
│   │   │   ├── gizmodo_phone2@1x.png
│   │   │   ├── gizmodo_thumb.jpg
│   │   │   ├── gizmodo.pdf
│   │   │   ├── hearst_framed.png
│   │   │   ├── hearst_framed2.png
│   │   │   ├── hearst_logo.png
│   │   │   ├── hearst_thumb.jpg
│   │   │   ├── hearst.pdf
│   │   │   ├── milestone_home_framed.png
│   │   │   ├── milestone_logo.png
│   │   │   ├── milestone_search_framed.png
│   │   │   ├── milestone_thumb.jpg
│   │   │   ├── milestone.pdf
│   │   │   ├── plista_graphic.png
│   │   │   ├── plista_logo.png
│   │   │   ├── plista_thumb.jpg
│   │   │   ├── plista.pdf
│   │   │   ├── relay_media_logo.png
│   │   │   ├── relay_media_thumb.jpg
│   │   │   ├── relay_media.pdf
│   │   │   ├── relaymedia_phone1.png
│   │   │   ├── relaymedia_phone1@1_5x.png
│   │   │   ├── relaymedia_phone1@1x.png
│   │   │   ├── relaymedia_phone2.png
│   │   │   ├── relaymedia_phone2@1_5x.png
│   │   │   ├── relaymedia_phone2@1x.png
│   │   │   ├── slate_logo.png
│   │   │   ├── slate_phone1.png
│   │   │   ├── slate_phone1@1_5x.png
│   │   │   ├── slate_phone1@1x.png
│   │   │   ├── slate_phone2.png
│   │   │   ├── slate_phone2@1_5x.png
│   │   │   ├── slate_phone2@1x.png
│   │   │   ├── slate_thumb.jpg
│   │   │   ├── slate.pdf
│   │   │   ├── teads_logo.png
│   │   │   ├── teads_logo2.png
│   │   │   ├── teads_phone.png
│   │   │   ├── teads_phone@1_5x.png
│   │   │   ├── teads_phone@1x.png
│   │   │   ├── teads_thumb.jpg
│   │   │   ├── teads.pdf
│   │   │   ├── terra_framed1.png
│   │   │   ├── terra_framed2.png
│   │   │   ├── terra_logo.png
│   │   │   ├── terra_thumb.jpg
│   │   │   ├── terra.pdf
│   │   │   ├── wapo_logo.png
│   │   │   ├── wapo_thumb.png
│   │   │   ├── wapo.pdf
│   │   │   ├── washingtonpost_phone.png
│   │   │   ├── washingtonpost_phone@1_5x.png
│   │   │   ├── washingtonpost_phone@1x.png
│   │   │   ├── wired_logo.png
│   │   │   ├── wired_phone1.png
│   │   │   ├── wired_phone1@1_5x.png
│   │   │   ├── wired_phone1@1x.png
│   │   │   ├── wired_phone2.png
│   │   │   ├── wired_phone2@1_5x.png
│   │   │   ├── wired_phone2@1x.png
│   │   │   ├── wired_thumb.jpg
│   │   │   └── wired.pdf
│   │   ├── cheveron-down.svg
│   │   ├── close.svg
│   │   ├── comment.png
│   │   ├── docs
│   │   │   ├── icon_important.svg
│   │   │   ├── icon_note.svg
│   │   │   ├── icon_read.svg
│   │   │   ├── icon_tip.svg
│   │   │   ├── responsive_amp_img.png
│   │   │   ├── too_much_css.png
│   │   │   ├── validator_console_imgerror.png
│   │   │   ├── validator_errors.png
│   │   │   ├── validator_extension_imgerror.png
│   │   │   ├── validator_icon_invalid.png
│   │   │   ├── validator_icon_link.png
│   │   │   ├── validator_icon_valid.png
│   │   │   ├── validator_mandatory_error.png
│   │   │   ├── validator_web_ui.png
│   │   │   └── validator_webui_imgerror.png
│   │   ├── enforce-comment.png
│   │   ├── footer
│   │   │   ├── line-left.png
│   │   │   ├── line-right-2.png
│   │   │   └── line-right.png
│   │   ├── github.png
│   │   ├── hamburger.svg
│   │   ├── home
│   │   │   ├── bg_experience.png
│   │   │   ├── home_hero_phone.png
│   │   │   ├── home_hero_phone@1_5x.png
│   │   │   ├── home_hero_phone@1x.png
│   │   │   ├── home_icon_flexibility.svg
│   │   │   ├── home_icon_performance.svg
│   │   │   ├── home_phone_ebay.png
│   │   │   ├── home_phone_ebay@1_5x.png
│   │   │   ├── home_phone_ebay@1x.png
│   │   │   ├── lines2.svg
│   │   │   ├── lines3.svg
│   │   │   ├── shapebg.svg
│   │   │   ├── teads_logo.svg
│   │   │   ├── wapo_logo.png
│   │   │   └── wired_logo.png
│   │   ├── ic_open_in_new_black.svg
│   │   ├── ic_open_in_new_white.svg
│   │   ├── icons
│   │   │   ├── 120.png
│   │   │   ├── 144.png
│   │   │   ├── 152.png
│   │   │   ├── 168.png
│   │   │   ├── 180.png
│   │   │   ├── 192.png
│   │   │   ├── 48.png
│   │   │   ├── 512.png
│   │   │   ├── 72.png
│   │   │   ├── 96.png
│   │   │   └── any.svg
│   │   ├── latest
│   │   │   ├── events
│   │   │   │   ├── event_empty.png
│   │   │   │   ├── event_empty.svg
│   │   │   │   └── event_hero.svg
│   │   │   ├── icon_audience.png
│   │   │   ├── icon_audience.svg
│   │   │   ├── icon_calendar.png
│   │   │   ├── icon_calendar.svg
│   │   │   ├── icon_location.png
│   │   │   ├── icon_location.svg
│   │   │   ├── icon_retweet.png
│   │   │   ├── icon_retweet.svg
│   │   │   ├── icon_twitter.svg
│   │   │   ├── latest_hero.jpg
│   │   │   ├── line_hero_back.svg
│   │   │   └── line_hero_front.svg
│   │   ├── liveblog-pagination.png
│   │   ├── login-button.png
│   │   ├── logo-blue.svg
│   │   ├── logout-button.png
│   │   ├── malte.jpg
│   │   ├── motions
│   │   │   └── amp-lines-motions.png
│   │   ├── nav
│   │   │   ├── back_arrow.png
│   │   │   ├── back_arrow.svg
│   │   │   ├── close.png
│   │   │   ├── close.svg
│   │   │   ├── next_level.png
│   │   │   └── next_level.svg
│   │   ├── partners
│   │   │   ├── adobe_analytics.png
│   │   │   ├── chartbeat.png
│   │   │   ├── comscore.png
│   │   │   ├── ggl_bw.png
│   │   │   ├── ggl.png
│   │   │   ├── li.png
│   │   │   ├── nuzzel.png
│   │   │   ├── parsely.png
│   │   │   ├── pinterest.png
│   │   │   ├── tw.png
│   │   │   └── wp.png
│   │   ├── platforms
│   │   │   ├── chrome.png
│   │   │   ├── criteo.png
│   │   │   ├── edge.png
│   │   │   ├── firefox.png
│   │   │   ├── google.png
│   │   │   ├── inmobi.png
│   │   │   ├── kargo.png
│   │   │   ├── mediavine.png
│   │   │   ├── opera.png
│   │   │   ├── plista.png
│   │   │   ├── safari.png
│   │   │   └── yahoo.png
│   │   ├── publishers
│   │   │   ├── abril.png
│   │   │   ├── asahi.png
│   │   │   ├── atlantic_media.png
│   │   │   ├── bbc_news.png
│   │   │   ├── buzzfeed.png
│   │   │   ├── condenast.png
│   │   │   ├── daily_mail.png
│   │   │   ├── economist.png
│   │   │   ├── editora_globo.png
│   │   │   ├── el_pais.png
│   │   │   ├── fairfax_media.png
│   │   │   ├── folha_de_s.paulo.png
│   │   │   ├── franzfurter_allgemeine.png
│   │   │   ├── ft.png
│   │   │   ├── gannett.png
│   │   │   ├── guardian.png
│   │   │   ├── hearst.png
│   │   │   ├── huffington_post.png
│   │   │   ├── la_stampa.png
│   │   │   ├── les_echos.png
│   │   │   ├── mainichi.png
│   │   │   ├── mashable.png
│   │   │   ├── mcclatchy.png
│   │   │   ├── new_york_times.png
│   │   │   ├── newscorp_australia.png
│   │   │   ├── nine_msn.png
│   │   │   ├── nrc.png
│   │   │   ├── ny_daily_news.png
│   │   │   ├── nypost.png
│   │   │   ├── pearson.png
│   │   │   ├── sankei.png
│   │   │   ├── telegraph.png
│   │   │   ├── time.png
│   │   │   ├── uol.png
│   │   │   ├── us_news.png
│   │   │   ├── vox_media.png
│   │   │   ├── wallstreetjournal.png
│   │   │   ├── washington_post.png
│   │   │   └── zeit_online.png
│   │   ├── quotes
│   │   │   ├── chartbeat.jpg
│   │   │   ├── ebay.jpg
│   │   │   ├── faz.jpg
│   │   │   ├── folha.jpg
│   │   │   ├── google.jpg
│   │   │   ├── guardian.jpg
│   │   │   ├── hearst.jpg
│   │   │   ├── lastampa.jpg
│   │   │   ├── newyorktimes.jpeg
│   │   │   ├── twitter.jpg
│   │   │   └── vox.jpg
│   │   ├── return-parameter.png
│   │   ├── sprite.svg
│   │   ├── symbols
│   │   │   ├── carat-down.svg
│   │   │   ├── carat.svg
│   │   │   ├── caret-right.svg
│   │   │   ├── close.svg
│   │   │   ├── lang-icon.svg
│   │   │   ├── logo-blue-standalone.svg
│   │   │   ├── return.svg
│   │   │   ├── search.svg
│   │   │   ├── share-close.svg
│   │   │   ├── share.svg
│   │   │   ├── template.scss
│   │   │   ├── twitter.svg
│   │   │   ├── video-play.svg
│   │   │   └── wordpress.svg
│   │   └── twitter.png
│   ├── manifest.json
│   ├── sass
│   │   ├── _accordions.scss
│   │   ├── _animated_lines.scss
│   │   ├── _animations.scss
│   │   ├── _bg-triangle.scss
│   │   ├── _callouts.scss
│   │   ├── _cards.scss
│   │   ├── _carousel.scss
│   │   ├── _config.scss
│   │   ├── _content-post.scss
│   │   ├── _content-section.scss
│   │   ├── _content.scss
│   │   ├── _doc-nav.scss
│   │   ├── _footer.scss
│   │   ├── _global.scss
│   │   ├── _grid.scss
│   │   ├── _header.scss
│   │   ├── _inline-toc.scss
│   │   ├── _lang_switcher.scss
│   │   ├── _large-cta.scss
│   │   ├── _lightbox.scss
│   │   ├── _mixins.scss
│   │   ├── _nav.scss
│   │   ├── _points.scss
│   │   ├── _post-item.scss
│   │   ├── _responsive.scss
│   │   ├── _search.scss
│   │   ├── _share.scss
│   │   ├── _sidebar.scss
│   │   ├── _sprite_generated.scss
│   │   ├── _sprite.scss
│   │   ├── _syntax_highlighting.scss
│   │   ├── _tables.scss
│   │   ├── _toc.scss
│   │   ├── about-how.min.scss
│   │   ├── about-overview.min.scss
│   │   ├── about-who-vertical.min.scss
│   │   ├── about-who.min.scss
│   │   ├── blog.min.scss
│   │   ├── case-study.min.scss
│   │   ├── design-principles.min.scss
│   │   ├── docs.min.scss
│   │   ├── home.min.scss
│   │   ├── list.min.scss
│   │   ├── main.min.scss
│   │   ├── pages
│   │   │   ├── _about-how.scss
│   │   │   ├── _about-overview.scss
│   │   │   ├── _about-who-vertical.scss
│   │   │   ├── _about-who.scss
│   │   │   ├── _case-study.scss
│   │   │   ├── _design-principles.scss
│   │   │   ├── _events.scss
│   │   │   ├── _faqs.scss
│   │   │   ├── _home.scss
│   │   │   ├── _latest.scss
│   │   │   ├── _list.scss
│   │   │   ├── _post-detail.scss
│   │   │   ├── _roadmap.scss
│   │   │   ├── _who.scss
│   │   │   └── amp-conf.scss
│   │   └── section.min.scss
│   └── video
│       ├── amp-phone.mp4
│       └── amp-phone.webm
├── content
│   ├── contribute
│   │   └── governance.md
│   ├── docs
│   │   ├── _blueprint.yaml
│   │   ├── blank.html
│   │   ├── build.md
│   │   ├── contribute
│   │   │   ├── _blueprint.yaml
│   │   │   ├── contribute.md
│   │   │   ├── contribute@ar.md
│   │   │   ├── contribute@de.md
│   │   │   ├── contribute@es.md
│   │   │   ├── contribute@fr.md
│   │   │   ├── file-a-bug.md
│   │   │   └── github.md
│   │   ├── contribute.md
│   │   ├── get_started
│   │   │   ├── _blueprint.yaml
│   │   │   ├── create
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── basic_markup.md
│   │   │   │   ├── basic_markup@ar.md
│   │   │   │   ├── basic_markup@de.md
│   │   │   │   ├── basic_markup@es.md
│   │   │   │   ├── basic_markup@fr.md
│   │   │   │   ├── basic_markup@id.md
│   │   │   │   ├── basic_markup@it.md
│   │   │   │   ├── basic_markup@ja.md
│   │   │   │   ├── basic_markup@ko.md
│   │   │   │   ├── basic_markup@pl.md
│   │   │   │   ├── basic_markup@pt_BR.md
│   │   │   │   ├── basic_markup@ru.md
│   │   │   │   ├── basic_markup@th.md
│   │   │   │   ├── basic_markup@tr.md
│   │   │   │   ├── basic_markup@zh_CN.md
│   │   │   │   ├── include_image.md
│   │   │   │   ├── include_image@ar.md
│   │   │   │   ├── include_image@de.md
│   │   │   │   ├── include_image@es.md
│   │   │   │   ├── include_image@fr.md
│   │   │   │   ├── include_image@id.md
│   │   │   │   ├── include_image@it.md
│   │   │   │   ├── include_image@ja.md
│   │   │   │   ├── include_image@ko.md
│   │   │   │   ├── include_image@pl.md
│   │   │   │   ├── include_image@pt_BR.md
│   │   │   │   ├── include_image@ru.md
│   │   │   │   ├── include_image@th.md
│   │   │   │   ├── include_image@tr.md
│   │   │   │   ├── include_image@zh_CN.md
│   │   │   │   ├── prepare_for_discovery.md
│   │   │   │   ├── prepare_for_discovery@ar.md
│   │   │   │   ├── prepare_for_discovery@de.md
│   │   │   │   ├── prepare_for_discovery@es.md
│   │   │   │   ├── prepare_for_discovery@fr.md
│   │   │   │   ├── prepare_for_discovery@id.md
│   │   │   │   ├── prepare_for_discovery@it.md
│   │   │   │   ├── prepare_for_discovery@ja.md
│   │   │   │   ├── prepare_for_discovery@ko.md
│   │   │   │   ├── prepare_for_discovery@pl.md
│   │   │   │   ├── prepare_for_discovery@pt_BR.md
│   │   │   │   ├── prepare_for_discovery@ru.md
│   │   │   │   ├── prepare_for_discovery@th.md
│   │   │   │   ├── prepare_for_discovery@tr.md
│   │   │   │   ├── prepare_for_discovery@zh_CN.md
│   │   │   │   ├── presentation_layout.md
│   │   │   │   ├── presentation_layout@ar.md
│   │   │   │   ├── presentation_layout@de.md
│   │   │   │   ├── presentation_layout@es.md
│   │   │   │   ├── presentation_layout@fr.md
│   │   │   │   ├── presentation_layout@id.md
│   │   │   │   ├── presentation_layout@it.md
│   │   │   │   ├── presentation_layout@ja.md
│   │   │   │   ├── presentation_layout@ko.md
│   │   │   │   ├── presentation_layout@pl.md
│   │   │   │   ├── presentation_layout@pt_BR.md
│   │   │   │   ├── presentation_layout@ru.md
│   │   │   │   ├── presentation_layout@th.md
│   │   │   │   ├── presentation_layout@tr.md
│   │   │   │   ├── presentation_layout@zh_CN.md
│   │   │   │   ├── preview_and_validate.md
│   │   │   │   ├── preview_and_validate@ar.md
│   │   │   │   ├── preview_and_validate@de.md
│   │   │   │   ├── preview_and_validate@es.md
│   │   │   │   ├── preview_and_validate@fr.md
│   │   │   │   ├── preview_and_validate@id.md
│   │   │   │   ├── preview_and_validate@it.md
│   │   │   │   ├── preview_and_validate@ja.md
│   │   │   │   ├── preview_and_validate@ko.md
│   │   │   │   ├── preview_and_validate@pl.md
│   │   │   │   ├── preview_and_validate@pt_BR.md
│   │   │   │   ├── preview_and_validate@ru.md
│   │   │   │   ├── preview_and_validate@th.md
│   │   │   │   ├── preview_and_validate@tr.md
│   │   │   │   ├── preview_and_validate@zh_CN.md
│   │   │   │   ├── publish.md
│   │   │   │   ├── publish@ar.md
│   │   │   │   ├── publish@de.md
│   │   │   │   ├── publish@es.md
│   │   │   │   ├── publish@fr.md
│   │   │   │   ├── publish@id.md
│   │   │   │   ├── publish@it.md
│   │   │   │   ├── publish@ja.md
│   │   │   │   ├── publish@ko.md
│   │   │   │   ├── publish@pl.md
│   │   │   │   ├── publish@pt_BR.md
│   │   │   │   ├── publish@ru.md
│   │   │   │   ├── publish@th.md
│   │   │   │   ├── publish@tr.md
│   │   │   │   └── publish@zh_CN.md
│   │   │   ├── create.md
│   │   │   ├── create@ar.md
│   │   │   ├── create@de.md
│   │   │   ├── create@es.md
│   │   │   ├── create@fr.md
│   │   │   ├── create@id.md
│   │   │   ├── create@it.md
│   │   │   ├── create@ja.md
│   │   │   ├── create@ko.md
│   │   │   ├── create@pl.md
│   │   │   ├── create@pt_BR.md
│   │   │   ├── create@ru.md
│   │   │   ├── create@th.md
│   │   │   ├── create@tr.md
│   │   │   ├── create@zh_CN.md
│   │   │   ├── live_blog.md
│   │   │   ├── live_blog@ko.md
│   │   │   ├── login_requiring
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── add_comment.md
│   │   │   │   ├── add_comment@ko.md
│   │   │   │   ├── login.md
│   │   │   │   ├── login@ko.md
│   │   │   │   ├── logout.md
│   │   │   │   ├── logout@ko.md
│   │   │   │   ├── summary.md
│   │   │   │   └── summary@ko.md
│   │   │   ├── login_requiring.md
│   │   │   └── login_requiring@ko.md
│   │   ├── getting-started.md
│   │   ├── guides
│   │   │   ├── _blueprint.yaml
│   │   │   ├── author_develop
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── ads_on_amp
│   │   │   │   │   ├── _blueprint.yaml
│   │   │   │   │   ├── ads_getting_started.md
│   │   │   │   │   ├── ads_getting_started@ko.md
│   │   │   │   │   ├── ads_tips.md
│   │   │   │   │   └── ads_tips@ko.md
│   │   │   │   ├── ads_on_amp.md
│   │   │   │   ├── ads_on_amp@ko.md
│   │   │   │   ├── amp_replacements.md
│   │   │   │   ├── amp_replacements@ko.md
│   │   │   │   ├── iframes.md
│   │   │   │   ├── iframes@ko.md
│   │   │   │   ├── responsive_amp
│   │   │   │   │   ├── _blueprint.yaml
│   │   │   │   │   ├── art_direction.md
│   │   │   │   │   ├── art_direction@ko.md
│   │   │   │   │   ├── control_layout.md
│   │   │   │   │   ├── control_layout@ar.md
│   │   │   │   │   ├── control_layout@de.md
│   │   │   │   │   ├── control_layout@es.md
│   │   │   │   │   ├── control_layout@fr.md
│   │   │   │   │   ├── control_layout@id.md
│   │   │   │   │   ├── control_layout@it.md
│   │   │   │   │   ├── control_layout@ja.md
│   │   │   │   │   ├── control_layout@ko.md
│   │   │   │   │   ├── control_layout@pl.md
│   │   │   │   │   ├── control_layout@pt_BR.md
│   │   │   │   │   ├── control_layout@ru.md
│   │   │   │   │   ├── control_layout@th.md
│   │   │   │   │   ├── control_layout@tr.md
│   │   │   │   │   ├── control_layout@zh_CN.md
│   │   │   │   │   ├── custom_fonts.md
│   │   │   │   │   ├── custom_fonts@ko.md
│   │   │   │   │   ├── placeholders.md
│   │   │   │   │   ├── placeholders@ko.md
│   │   │   │   │   ├── style_pages.md
│   │   │   │   │   ├── style_pages@ar.md
│   │   │   │   │   ├── style_pages@de.md
│   │   │   │   │   ├── style_pages@es.md
│   │   │   │   │   ├── style_pages@fr.md
│   │   │   │   │   ├── style_pages@id.md
│   │   │   │   │   ├── style_pages@it.md
│   │   │   │   │   ├── style_pages@ja.md
│   │   │   │   │   ├── style_pages@ko.md
│   │   │   │   │   ├── style_pages@pl.md
│   │   │   │   │   ├── style_pages@pt_BR.md
│   │   │   │   │   ├── style_pages@ru.md
│   │   │   │   │   ├── style_pages@th.md
│   │   │   │   │   ├── style_pages@tr.md
│   │   │   │   │   └── style_pages@zh_CN.md
│   │   │   │   ├── responsive_amp.md
│   │   │   │   ├── responsive_amp@ar.md
│   │   │   │   ├── responsive_amp@de.md
│   │   │   │   ├── responsive_amp@es.md
│   │   │   │   ├── responsive_amp@fr.md
│   │   │   │   ├── responsive_amp@id.md
│   │   │   │   ├── responsive_amp@it.md
│   │   │   │   ├── responsive_amp@ja.md
│   │   │   │   ├── responsive_amp@ko.md
│   │   │   │   ├── responsive_amp@pl.md
│   │   │   │   ├── responsive_amp@pt_BR.md
│   │   │   │   ├── responsive_amp@ru.md
│   │   │   │   ├── responsive_amp@th.md
│   │   │   │   ├── responsive_amp@tr.md
│   │   │   │   ├── responsive_amp@zh_CN.md
│   │   │   │   ├── third_party_components.md
│   │   │   │   ├── third_party_components@ar.md
│   │   │   │   ├── third_party_components@de.md
│   │   │   │   ├── third_party_components@es.md
│   │   │   │   ├── third_party_components@fr.md
│   │   │   │   ├── third_party_components@id.md
│   │   │   │   ├── third_party_components@it.md
│   │   │   │   ├── third_party_components@ja.md
│   │   │   │   ├── third_party_components@ko.md
│   │   │   │   ├── third_party_components@pl.md
│   │   │   │   ├── third_party_components@pt_BR.md
│   │   │   │   ├── third_party_components@ru.md
│   │   │   │   ├── third_party_components@th.md
│   │   │   │   ├── third_party_components@tr.md
│   │   │   │   └── third_party_components@zh_CN.md
│   │   │   ├── author_develop.md
│   │   │   ├── debug
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── validate.md
│   │   │   │   ├── validate@ar.md
│   │   │   │   ├── validate@de.md
│   │   │   │   ├── validate@es.md
│   │   │   │   ├── validate@fr.md
│   │   │   │   ├── validate@id.md
│   │   │   │   ├── validate@it.md
│   │   │   │   ├── validate@ja.md
│   │   │   │   ├── validate@ko.md
│   │   │   │   ├── validate@pl.md
│   │   │   │   ├── validate@pt_BR.md
│   │   │   │   ├── validate@ru.md
│   │   │   │   ├── validate@th.md
│   │   │   │   ├── validate@tr.md
│   │   │   │   └── validate@zh_CN.md
│   │   │   ├── debug.md
│   │   │   ├── deploy
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── analytics_amp
│   │   │   │   │   ├── _blueprint.yaml
│   │   │   │   │   ├── analytics_basics.md
│   │   │   │   │   ├── analytics_basics@ar.md
│   │   │   │   │   ├── analytics_basics@de.md
│   │   │   │   │   ├── analytics_basics@es.md
│   │   │   │   │   ├── analytics_basics@fr.md
│   │   │   │   │   ├── analytics_basics@id.md
│   │   │   │   │   ├── analytics_basics@it.md
│   │   │   │   │   ├── analytics_basics@ja.md
│   │   │   │   │   ├── analytics_basics@ko.md
│   │   │   │   │   ├── analytics_basics@pl.md
│   │   │   │   │   ├── analytics_basics@pt_BR.md
│   │   │   │   │   ├── analytics_basics@ru.md
│   │   │   │   │   ├── analytics_basics@th.md
│   │   │   │   │   ├── analytics_basics@tr.md
│   │   │   │   │   ├── analytics_basics@zh_CN.md
│   │   │   │   │   ├── deep_dive_analytics.md
│   │   │   │   │   ├── deep_dive_analytics@ar.md
│   │   │   │   │   ├── deep_dive_analytics@de.md
│   │   │   │   │   ├── deep_dive_analytics@es.md
│   │   │   │   │   ├── deep_dive_analytics@fr.md
│   │   │   │   │   ├── deep_dive_analytics@id.md
│   │   │   │   │   ├── deep_dive_analytics@it.md
│   │   │   │   │   ├── deep_dive_analytics@ja.md
│   │   │   │   │   ├── deep_dive_analytics@ko.md
│   │   │   │   │   ├── deep_dive_analytics@pl.md
│   │   │   │   │   ├── deep_dive_analytics@pt_BR.md
│   │   │   │   │   ├── deep_dive_analytics@ru.md
│   │   │   │   │   ├── deep_dive_analytics@th.md
│   │   │   │   │   ├── deep_dive_analytics@tr.md
│   │   │   │   │   ├── deep_dive_analytics@zh_CN.md
│   │   │   │   │   ├── use_cases.md
│   │   │   │   │   ├── use_cases@ar.md
│   │   │   │   │   ├── use_cases@de.md
│   │   │   │   │   ├── use_cases@es.md
│   │   │   │   │   ├── use_cases@fr.md
│   │   │   │   │   ├── use_cases@id.md
│   │   │   │   │   ├── use_cases@it.md
│   │   │   │   │   ├── use_cases@ja.md
│   │   │   │   │   ├── use_cases@ko.md
│   │   │   │   │   ├── use_cases@pl.md
│   │   │   │   │   ├── use_cases@pt_BR.md
│   │   │   │   │   ├── use_cases@ru.md
│   │   │   │   │   ├── use_cases@th.md
│   │   │   │   │   ├── use_cases@tr.md
│   │   │   │   │   └── use_cases@zh_CN.md
│   │   │   │   ├── analytics_amp.md
│   │   │   │   ├── analytics_amp@ar.md
│   │   │   │   ├── analytics_amp@de.md
│   │   │   │   ├── analytics_amp@es.md
│   │   │   │   ├── analytics_amp@fr.md
│   │   │   │   ├── analytics_amp@id.md
│   │   │   │   ├── analytics_amp@it.md
│   │   │   │   ├── analytics_amp@ja.md
│   │   │   │   ├── analytics_amp@ko.md
│   │   │   │   ├── analytics_amp@pl.md
│   │   │   │   ├── analytics_amp@pt_BR.md
│   │   │   │   ├── analytics_amp@ru.md
│   │   │   │   ├── analytics_amp@th.md
│   │   │   │   ├── analytics_amp@tr.md
│   │   │   │   ├── analytics_amp@zh_CN.md
│   │   │   │   ├── discovery.md
│   │   │   │   ├── discovery@ar.md
│   │   │   │   ├── discovery@de.md
│   │   │   │   ├── discovery@es.md
│   │   │   │   ├── discovery@fr.md
│   │   │   │   ├── discovery@id.md
│   │   │   │   ├── discovery@it.md
│   │   │   │   ├── discovery@ja.md
│   │   │   │   ├── discovery@ko.md
│   │   │   │   ├── discovery@pl.md
│   │   │   │   ├── discovery@pt_BR.md
│   │   │   │   ├── discovery@ru.md
│   │   │   │   ├── discovery@th.md
│   │   │   │   ├── discovery@tr.md
│   │   │   │   ├── discovery@zh_CN.md
│   │   │   │   ├── engagement.md
│   │   │   │   └── engagement@ko.md
│   │   │   ├── deploy.md
│   │   │   └── embed
│   │   │       ├── _blueprint.yaml
│   │   │       └── login-paywalls.md
│   │   ├── guides.md
│   │   ├── reference
│   │   │   ├── _blueprint.yaml
│   │   │   ├── common_attributes.md
│   │   │   ├── components
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── ads-analytics
│   │   │   │   │   └── _blueprint.yaml
│   │   │   │   ├── dynamic-content
│   │   │   │   │   └── _blueprint.yaml
│   │   │   │   ├── layout
│   │   │   │   │   └── _blueprint.yaml
│   │   │   │   ├── media
│   │   │   │   │   └── _blueprint.yaml
│   │   │   │   ├── presentation
│   │   │   │   │   └── _blueprint.yaml
│   │   │   │   └── social
│   │   │   │       └── _blueprint.yaml
│   │   │   ├── components.md
│   │   │   ├── experimental.md
│   │   │   ├── experimental@ar.md
│   │   │   ├── experimental@de.md
│   │   │   ├── experimental@es.md
│   │   │   ├── experimental@fr.md
│   │   │   ├── experimental@id.md
│   │   │   ├── experimental@it.md
│   │   │   ├── experimental@ja.md
│   │   │   ├── experimental@pl.md
│   │   │   ├── experimental@pt_BR.md
│   │   │   ├── experimental@ru.md
│   │   │   ├── experimental@th.md
│   │   │   ├── experimental@tr.md
│   │   │   ├── experimental@zh_CN.md
│   │   │   ├── validation_errors.md
│   │   │   ├── validation_errors@ar.md
│   │   │   ├── validation_errors@de.md
│   │   │   ├── validation_errors@es.md
│   │   │   ├── validation_errors@fr.md
│   │   │   ├── validation_errors@id.md
│   │   │   ├── validation_errors@it.md
│   │   │   ├── validation_errors@ja.md
│   │   │   ├── validation_errors@pl.md
│   │   │   ├── validation_errors@pt_BR.md
│   │   │   ├── validation_errors@ru.md
│   │   │   ├── validation_errors@th.md
│   │   │   ├── validation_errors@tr.md
│   │   │   └── validation_errors@zh_CN.md
│   │   ├── reference.md
│   │   └── tutorials.md
│   ├── includes
│   │   ├── _blueprint.yaml
│   │   ├── amp-conf-2017.yaml
│   │   ├── amp-iframe.md
│   │   ├── blog_feed.yaml
│   │   ├── doc.yaml
│   │   ├── events.yaml
│   │   ├── home.yaml
│   │   ├── html-example.md
│   │   ├── latest.yaml
│   │   ├── list-blog.yaml
│   │   ├── lists.yaml
│   │   ├── menu.yaml
│   │   ├── roadmap.yaml
│   │   └── tweets.yaml
│   ├── latest
│   │   ├── _blueprint.yaml
│   │   ├── blog
│   │   │   ├── _blueprint.yaml
│   │   │   ├── 1056.md
│   │   │   ├── ads-on-the-web-will-get-better-with-amp-heres-how.md
│   │   │   ├── amp-roadmap-update-for-mid-q1-2017.md
│   │   │   ├── amp-up-for-amp-conf-2017.md
│   │   │   ├── grow-your-business-with-ads-on-amp.md
│   │   │   ├── new-default-placeholders-for-ads-in-amp.md
│   │   │   ├── new-industry-benchmarks-for-mobile-page-speed.md
│   │   │   ├── speeding-up-news-apps-with-amp.md
│   │   │   ├── whats-in-an-amp-url.md
│   │   │   └── why-amp-caches-exist.md
│   │   ├── latest.html
│   │   ├── list-blog.html
│   │   ├── list-event.html
│   │   ├── list-past-event.html
│   │   └── roadmap.html
│   ├── learn
│   │   ├── _blueprint.yaml
│   │   ├── about-amp.md
│   │   ├── about-amp@ar.md
│   │   ├── about-amp@de.md
│   │   ├── about-amp@es.md
│   │   ├── about-amp@fr.md
│   │   ├── about-amp@id.md
│   │   ├── about-amp@it.md
│   │   ├── about-amp@ja.md
│   │   ├── about-amp@ko.md
│   │   ├── about-amp@pl.md
│   │   ├── about-amp@pt_BR.md
│   │   ├── about-amp@ru.md
│   │   ├── about-amp@th.md
│   │   ├── about-amp@tr.md
│   │   ├── about-amp@zh_CN.md
│   │   ├── about-how.yaml
│   │   ├── about-how@ar.yaml
│   │   ├── about-how@es.yaml
│   │   ├── about-how@fr.yaml
│   │   ├── about-how@id.yaml
│   │   ├── about-how@it.yaml
│   │   ├── about-how@ja.yaml
│   │   ├── about-how@ko.yaml
│   │   ├── about-how@pl.yaml
│   │   ├── about-how@pt_BR.yaml
│   │   ├── about-how@ru.yaml
│   │   ├── about-how@th.yaml
│   │   ├── about-how@tr.yaml
│   │   ├── about-how@zh_CN.yaml
│   │   ├── amp-design-principles.yaml
│   │   ├── browsers.md
│   │   ├── case-studies
│   │   │   ├── _blueprint.yaml
│   │   │   ├── category
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── advertisers.md
│   │   │   │   └── publishers.md
│   │   │   ├── gizmodo.md
│   │   │   ├── hearst.md
│   │   │   ├── milestone.md
│   │   │   ├── plista.md
│   │   │   ├── relay_media.md
│   │   │   ├── slate.md
│   │   │   ├── teads.md
│   │   │   ├── terra.md
│   │   │   ├── washingtonpost.md
│   │   │   └── wired.md
│   │   ├── case-studies.html
│   │   ├── how-amp-works.md
│   │   ├── how-amp-works@ar.md
│   │   ├── how-amp-works@es.md
│   │   ├── how-amp-works@fr.md
│   │   ├── how-amp-works@id.md
│   │   ├── how-amp-works@it.md
│   │   ├── how-amp-works@ja.md
│   │   ├── how-amp-works@ko.md
│   │   ├── how-amp-works@pl.md
│   │   ├── how-amp-works@pt_BR.md
│   │   ├── how-amp-works@ru.md
│   │   ├── how-amp-works@th.md
│   │   ├── how-amp-works@tr.md
│   │   ├── how-amp-works@zh_CN.md
│   │   ├── metrics.html
│   │   ├── overview.yaml
│   │   ├── overview@ar.yaml
│   │   ├── overview@de.yaml
│   │   ├── overview@es.yaml
│   │   ├── overview@fr.yaml
│   │   ├── overview@id.yaml
│   │   ├── overview@it.yaml
│   │   ├── overview@ja.yaml
│   │   ├── overview@ko.yaml
│   │   ├── overview@pl.yaml
│   │   ├── overview@pt_BR.yaml
│   │   ├── overview@ru.yaml
│   │   ├── overview@th.yaml
│   │   ├── overview@tr.yaml
│   │   ├── overview@zh_CN.yaml
│   │   ├── who
│   │   │   ├── _blueprint.yaml
│   │   │   ├── ad-tech-platforms.yaml
│   │   │   ├── advertisers.yaml
│   │   │   ├── amp-ads.yaml
│   │   │   └── publishers.yaml
│   │   └── who-uses-amp.yaml
│   ├── pages
│   │   ├── _blueprint.yaml
│   │   ├── amp-conf-2017
│   │   │   ├── _blueprint.yaml
│   │   │   ├── accessibility.html
│   │   │   └── code-of-conduct.html
│   │   ├── amp-conf-2017.html
│   │   ├── home.html
│   │   ├── how-it-works.html
│   │   └── metrics_chart.html
│   └── support
│       ├── _blueprint.yaml
│       ├── developer
│       │   ├── _blueprint.yaml
│       │   ├── documentation-bug.md
│       │   ├── mailing-list.md
│       │   ├── platform-bug.md
│       │   ├── slack.md
│       │   └── stack-overflow.md
│       ├── developer.md
│       ├── faqs
│       │   ├── _blueprint.yaml
│       │   ├── overview.md
│       │   ├── overview@ar.md
│       │   ├── overview@de.md
│       │   ├── overview@es.md
│       │   ├── overview@fr.md
│       │   ├── overview@id.md
│       │   ├── overview@it.md
│       │   ├── overview@ja.md
│       │   ├── overview@pl.md
│       │   ├── overview@pt_BR.md
│       │   ├── overview@ru.md
│       │   ├── overview@th.md
│       │   ├── overview@tr.md
│       │   ├── overview@zh_CN.md
│       │   ├── platform-involvement.md
│       │   ├── platform-involvement@ar.md
│       │   ├── platform-involvement@de.md
│       │   ├── platform-involvement@es.md
│       │   ├── platform-involvement@fr.md
│       │   ├── platform-involvement@id.md
│       │   ├── platform-involvement@it.md
│       │   ├── platform-involvement@ja.md
│       │   ├── platform-involvement@pl.md
│       │   ├── platform-involvement@pt_BR.md
│       │   ├── platform-involvement@ru.md
│       │   ├── platform-involvement@th.md
│       │   ├── platform-involvement@tr.md
│       │   ├── platform-involvement@zh_CN.md
│       │   ├── publisher-monetization.md
│       │   ├── publisher-monetization@ar.md
│       │   ├── publisher-monetization@de.md
│       │   ├── publisher-monetization@es.md
│       │   ├── publisher-monetization@fr.md
│       │   ├── publisher-monetization@id.md
│       │   ├── publisher-monetization@it.md
│       │   ├── publisher-monetization@ja.md
│       │   ├── publisher-monetization@pl.md
│       │   ├── publisher-monetization@pt_BR.md
│       │   ├── publisher-monetization@ru.md
│       │   ├── publisher-monetization@th.md
│       │   ├── publisher-monetization@tr.md
│       │   ├── publisher-monetization@zh_CN.md
│       │   └── supported-platforms.md
│       ├── faqs.md
│       ├── platform.md
│       ├── support.md
│       ├── vendor
│       │   ├── _blueprint.yaml
│       │   └── amp-certification.md
│       └── vendor.md
├── CONTRIBUTING.md
├── firebase.json
├── gulpfile.js
├── LICENSE
├── npm-shrinkwrap.json
├── package.json
├── podspec.yaml
├── pwa
│   ├── google7199ce9da1ad191b.html
│   ├── pwa.html
│   ├── pwa.js
│   └── service-worker.js
├── README.md
├── scripts
│   ├── component_categories.json
│   ├── import_docs.js
│   ├── import_docs.json
│   ├── update_blog_links.js
│   ├── update_platforms_page.js
│   └── update_tweets.js
├── translations
│   ├── ar
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── de
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── es
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── fr
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── id
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── it
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── ja
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── ko
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── messages.pot
│   ├── pl
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── pt_BR
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── ru
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── th
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   ├── tr
│   │   └── LC_MESSAGES
│   │       └── messages.po
│   └── zh_CN
│       └── LC_MESSAGES
│           └── messages.po
└── views
    ├── about-casestudies.html
    ├── about-how.html
    ├── about-overview.html
    ├── about-who-vertical.html
    ├── about-who.html
    ├── base.html
    ├── blank.html
    ├── blog_detail.html
    ├── case-study.html
    ├── design-principles.html
    ├── doc.html
    ├── grid_page.html
    ├── list_page.html
    ├── partials
    │   ├── breadcrumb-nav.html
    │   ├── doc_nav.html
    │   ├── faq-accordion.html
    │   ├── footer-cta.html
    │   ├── footer.html
    │   ├── grid-card.html
    │   ├── head.html
    │   ├── header.html
    │   ├── lang_switcher.html
    │   ├── large-cta.html
    │   ├── lines.html
    │   ├── nav.html
    │   ├── points.html
    │   ├── post-item.html
    │   ├── promo_banner.html
    │   ├── search.html
    │   ├── share.html
    │   ├── sidebar.html
    │   └── sub_nav.html
    └── section_page.html
```

# Files

--------------------------------------------------------------------------------
/content/docs/reference/validation_errors@it.md:
--------------------------------------------------------------------------------

```markdown
  1 | ---
  2 | $title: Errori di convalida AMP
  3 | ---
  4 | 
  5 | <!---
  6 | Copyright 2015 The AMP HTML Authors. All Rights Reserved.
  7 | 
  8 | Licensed under the Apache License, Version 2.0 (the "License");
  9 | you may not use this file except in compliance with the License.
 10 | You may obtain a copy of the License at
 11 | 
 12 |       http://www.apache.org/licenses/LICENSE-2.0
 13 | 
 14 | Unless required by applicable law or agreed to in writing, software
 15 | distributed under the License is distributed on an "AS-IS" BASIS,
 16 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 17 | See the License for the specific language governing permissions and
 18 | limitations under the License.
 19 | -->
 20 | 
 21 | I documenti AMP validi non devono contenere errori di convalida.
 22 | Questo documento ha lo scopo di aiutarti a comprendere meglio e a correggere gli eventuali errori riscontrati durante la [convalida delle tue pagine AMP](/docs/guides/validate.html).
 23 | Per una panoramica completa degli errori di convalida, leggi la [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
 24 | 
 25 | [TOC]
 26 | 
 27 | ## Errori negli attributi e nei tag HTML AMP
 28 | 
 29 | ### Tag obbligatorio mancante
 30 | 
 31 | <table>
 32 |    <tr>
 33 |   	<td class="col-thirty"><strong>Codice</strong></td>
 34 |   	<td>MANDATORY_TAG_MISSING</td>
 35 |   </tr>
 36 |    <tr>
 37 |   	<td class="col-thirty"><strong>Formato</strong></td>
 38 |   	<td>"The mandatory tag '%1' is missing or incorrect."</td>
 39 |   </tr>
 40 |    <tr>
 41 |   	<td class="col-thirty"><strong>Correzione</strong></td>
 42 |   	<td>Aggiungi (o correggi) il tag HTML obbligatorio.</td>
 43 |   </tr>
 44 | </table>
 45 | 
 46 | I tag che seguono devono essere presenti in tutti i documenti AMP:
 47 | 
 48 | * <a name="doctype"></a>`<!doctype html>`
 49 | * <a name="html"></a>`<html amp> or <html ⚡>`
 50 | * <a name="head"></a>`<head>`
 51 | * <a name="canonical"></a>`<link rel="canonical" href="$SOME_URL" />`
 52 | * <a name="utf"></a>`<meta charset="utf-8">`
 53 | * <a name="viewport"></a>`<meta name="viewport" content="...">`
 54 | * <a name="boilerplate"></a>`<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>`
 55 | * <a name="ampscript"></a>`<script async src="https://cdn.ampproject.org/v0.js"></script>`
 56 | * <a name="body"></a>`<body>`
 57 | 
 58 | 
 59 | Questi tag obbligatori includono un campo `mandatory: true` nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii); vengono inoltre citati nella [specifica AMP](/docs/reference/spec.html).
 60 | 
 61 | ### Tag richiesto da un altro tag mancante
 62 | 
 63 | <table>
 64 |    <tr>
 65 |   	<td class="col-thirty"><strong>Codice</strong></td>
 66 |   	<td>TAG_REQUIRED_BY_MISSING</td>
 67 |   </tr>
 68 |    <tr>
 69 |   	<td class="col-thirty"><strong>Formato</strong></td>
 70 |   	<td>"The '%1' tag is missing or incorrect, but required by '%2'."</td>
 71 |   </tr>
 72 |    <tr>
 73 |   	<td class="col-thirty"><strong>Correzione</strong></td>
 74 |   	<td>Aggiungi (o correggi) il tag HTML richiesto.</td>
 75 |   </tr>
 76 | </table>
 77 | 
 78 | Lo strumento di convalida genera l'errore `TAG_REQUIRED_BY_MISSING` quando trova un componente esteso nel documento AMP, ma non trova il relativo equivalente `<script>`.
 79 | 
 80 | I [componenti estesi](/docs/reference/extended.html) devono essere inclusi esplicitamente nel documento AMP sotto forma di elementi personalizzati.
 81 | Per correggere questi errori visita la pagina di riferimento del componente esteso, copia lo script obbligatorio e incollalo nell'elemento `<head>` del documento AMP.
 82 | 
 83 | ### Tag non consentito
 84 | 
 85 | <table>
 86 |    <tr>
 87 |   	<td class="col-thirty"><strong>Codice</strong></td>
 88 |   	<td>DISALLOWED_TAG</td>
 89 |   </tr>
 90 |    <tr>
 91 |   	<td class="col-thirty"><strong>Formato</strong></td>
 92 |   	<td>"The tag '%1' is disallowed."</td>
 93 |   </tr>
 94 |    <tr>
 95 |   	<td class="col-thirty"><strong>Correzione</strong></td>
 96 |   	<td>Rimuovi il tag non consentito.</td>
 97 |   </tr>
 98 | </table>
 99 | 
100 | Esiste una whitelist dei tag, ma non esiste un elenco definitivo di tutti i tag non consentiti; tuttavia, la [specifica AMP](/docs/reference/spec.html) definisce un insieme approssimativo dei tag non consentiti.
101 | 
102 | ### Attributo obbligatorio mancante
103 | 
104 | <table>
105 |    <tr>
106 |   	<td class="col-thirty"><strong>Codice</strong></td>
107 |   	<td>MANDATORY_ATTR_MISSING</td>
108 |   </tr>
109 |    <tr>
110 |   	<td class="col-thirty"><strong>Formato</strong></td>
111 |   	<td>"The mandatory attribute '%1' is missing in tag '%2'."</td>
112 |   </tr>
113 |    <tr>
114 |   	<td class="col-thirty"><strong>Correzione</strong></td>
115 |   	<td>Aggiungi l'attributo obbligatorio al tag.</td>
116 |   </tr>
117 | </table>
118 | 
119 | Gli attributi obbligatori dei tag AMP sono definiti all'interno della [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
120 | Cerca il tag, visualizza gli attributi elencati e controlla se è presente `mandatory: true`.
121 | Gli attributi obbligatori di ogni tag AMP sono elencati anche nella specifica del tag.
122 | 
123 | ### Valore dell'attributo non valido
124 | 
125 | <table>
126 |    <tr>
127 |   	<td class="col-thirty"><strong>Codice</strong></td>
128 |   	<td>INVALID_ATTR_VALUE</td>
129 |   </tr>
130 |    <tr>
131 |   	<td class="col-thirty"><strong>Formato</strong></td>
132 |   	<td>"The attribute '%1' in tag '%2' is set to the invalid value '%3'."</td>
133 |   </tr>
134 |    <tr>
135 |   	<td class="col-thirty"><strong>Correzione</strong></td>
136 |   	<td>Correggi il valore dell'attributo inpostandone uno valido.</td>
137 |   </tr>
138 | </table>
139 | 
140 | Questo errore indica che un tag HTML ha un attributo con un nome consentito, ma non un valore consentito.
141 | Ad esempio, spesso questo errore viene generato se vengono rilevati valori non validi negli URL. Tutti i valori degli URL (negli attributi `href` e `src`) devono corrispondere a uno di questi [valori possibili degli attributi](http://www.w3schools.com/tags/att_a_href.asp).
142 | 
143 | <strong>IMPORTANTE.</strong> Molti valori degli URL nello standard AMP richiedono il protocollo HTTPS. Se ricevi questo errore, ma non sai esattamente perché, controlla la specifica del tag AMP pertinente per verificare se l'attributo richiede HTTPS.
144 | 
145 | ### Attributo non consentito
146 | 
147 | <table>
148 |   <tr>
149 |   	<td class="col-thirty"><strong>Codice</strong></td>
150 |   	<td>DISALLOWED_ATTR</td>
151 |   </tr>
152 |   <tr>
153 |   	<td class="col-thirty"><strong>Formato</strong></td>
154 |   	<td>"The attribute '%1' may not appear in tag '%2'."</td>
155 |   </tr>
156 |   <tr>
157 |   	<td class="col-thirty"><strong>Correzione</strong></td>
158 |   	<td>Rimuovi l'attributo dal tag HTML.</td>
159 |   </tr>
160 | </table>
161 | 
162 | Esiste una whitelist degli attributi, ma non esiste un elenco definitivo di tutti gli attributi non consentiti.
163 | Per controllare gli attributi supportati per ogni tag specifico, cerca il tag HTML, quindi il valore `attrs` nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
164 | 
165 | Oltre agli attributi specifici di ogni tag presenti in una whitelist, tutti i tag AMP possono utilizzare qualsiasi attributo presente nella whitelist `$GLOBAL_ATTRS`; è possibile utilizzare anche tutti gli attributi con il prefisso `"data-"`.
166 | 
167 | ### Testo obbligatorio mancante o errato
168 | 
169 | <table>
170 |   <tr>
171 |   	<td class="col-thirty"><strong>Codice</strong></td>
172 |   	<td>MANDATORY_CDATA_MISSING_OR_INCORRECT</td>
173 |   </tr>
174 |    <tr>
175 |   	<td class="col-thirty"><strong>Formato</strong></td>
176 |   	<td>"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."</td>
177 |   </tr>
178 |    <tr>
179 |   	<td class="col-thirty"><strong>Correzione</strong></td>
180 |   	<td>Aggiungi o correggi il testo obbligatorio all'interno del tag.</td>
181 |   </tr>
182 | </table>
183 | 
184 | Gli elementi CDATA sono i dati sui contenuti racchiusi tra tag HTML di inizio e di fine; attualmente vengono valutati utilizzando sia whitelist sia blacklist.
185 | I tag con elementi CDATA obbligatori includono:
186 | 
187 | [sourcecode:html]
188 | <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>
189 | [/sourcecode]
190 | 
191 | E:
192 | 
193 | [sourcecode:html]
194 | <style amp-custom>
195 | [/sourcecode]
196 | 
197 | I messaggi dettagliati relativi a questo errore possono essere i seguenti:
198 | 
199 | * "Boilerplate stili obbligatorio (js attivo)"
200 | * "Boilerplate stili obbligatorio (noscript)"
201 | * "Prefisso nome classe CSS -amp- non consentito"
202 | * "Attributo !important non consentito in CSS"
203 | * "Regola @charset non consentita in CSS"
204 | * "Regola @import non consentita in CSS"
205 | * "Regola @namespace non consentita in CSS"
206 | * "Regola @supports non consentita in CSS"
207 | * "Regola @document non consentita in CSS"
208 | * "Regola @page non consentita in CSS"
209 | * "Regola @viewport non consentita in CSS"
210 | 
211 | 
212 | ### Testo non consentito all'interno del tag
213 | 
214 | <table>
215 |    <tr>
216 |   	<td class="col-thirty"><strong>Codice</strong></td>
217 |   	<td>CDATA_VIOLATES_BLACKLIST</td>
218 |   </tr>
219 |    <tr>
220 |   	<td class="col-thirty"><strong>Formato</strong></td>
221 |   	<td>"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</td>
222 |   </tr>
223 |    <tr>
224 |   	<td class="col-thirty"><strong>Correzione</strong></td>
225 |   	<td>Rimuovi il testo non consentito.</td>
226 |   </tr>
227 | </table>
228 | 
229 | Alcuni dati CSS specifici sono stati inseriti in una blacklist per convalidare le regole AMP CSS essenziali.
230 | 
231 | Di seguito è riportato l'elenco di dati CSS inseriti nella blacklist (vedi anche <a href="https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii">`blacklisted_cdata_regex` nella specifica dello strumento di convalida AMP</a>):
232 | 
233 | * `"\\.i?-amp-"` ("prefisso nome classe CSS -amp-")
234 | * `"!important"`
235 | * `"charset"`
236 | * `"@import"`
237 | * `"@namespace"`
238 | * `"@document"`
239 | * `"@page"`
240 | * `"@viewport"`
241 | 
242 | 
243 | ### Proprietà non consentita all'interno dell'attributo del tag
244 | 
245 | <table>
246 |    <tr>
247 |   	<td class="col-thirty"><strong>Codice</strong></td>
248 |   	<td>DISALLOWED_PROPERTY_IN_ATTR_VALUE</td>
249 |   </tr>
250 |    <tr>
251 |   	<td class="col-thirty"><strong>Formato</strong></td>
252 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is disallowed."</td>
253 |   </tr>
254 |    <tr>
255 |   	<td class="col-thirty"><strong>Correzione</strong></td>
256 |   	<td>Rimuovi la proprietà non consentita dall'attributo specificato.</td>
257 |   </tr>
258 | </table>
259 | 
260 | Questo errore si verifica quando il nome della proprietà all'interno di un attributo non è consentito.
261 | In questo contesto, con il termine proprietà si indicano i dati strutturati chiave/valore all'interno di un attributo.
262 | Ad esempio, in `<meta name="viewport content="width=device-width;minimum-scale=1">`, `width` e `minimum-scale` sono nomi di proprietà.
263 | 
264 | Il codice seguente genera un errore DISALLOWED_PROPERTY_IN_ATTR_VALUE:
265 | 
266 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
267 | 
268 | Ecco un altro esempio di codice che genererebbe un errore:
269 | 
270 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
271 | 
272 | Dovrebbe essere: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
273 | 
274 | ### Valore della proprietà non valido
275 | 
276 | <table>
277 |    <tr>
278 |   	<td class="col-thirty"><strong>Codice</strong></td>
279 |   	<td>INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</td>
280 |   </tr>
281 |    <tr>
282 |   	<td class="col-thirty"><strong>Formato</strong></td>
283 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</td>
284 |   </tr>
285 |    <tr>
286 |   	<td class="col-thirty"><strong>Correzione</strong></td>
287 |   	<td>Correggi il valore non valido della proprietà.</td>
288 |   </tr>
289 | </table>
290 | 
291 | Questo errore si verifica quando il valore della proprietà all'interno di un attributo non è valido.
292 | In questo contesto, con il termine proprietà si indicano i dati strutturati chiave/valore all'interno di un attributo.
293 | Ad esempio, in `<meta name="viewport content="width=device-width;minimum-scale=1">`, `device-width` e `1` sono valori di proprietà.
294 | 
295 | Il codice seguente genera un errore INVALID_PROPERTY_VALUE_IN_ATTR_VALUE:
296 | 
297 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
298 | 
299 | Ecco un altro esempio di codice che genererebbe un errore:
300 | 
301 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
302 | 
303 | Dovrebbe essere: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
304 | 
305 | ### URL mancante
306 | 
307 | <table>
308 |   <tr>
309 |     <td class="col-thirty"><strong>Codice</strong></td>
310 |     <td>MISSING_URL</td>
311 |   </tr>
312 |    <tr>
313 |     <td class="col-thirty"><strong>Formato</strong></td>
314 |     <td>"Missing URL for attribute '%1' in tag '%2'."</td>
315 |   </tr>
316 |    <tr>
317 |     <td class="col-thirty"><strong>Correzione</strong></td>
318 |     <td>Aggiungi l'URL valido.</td>
319 |   </tr>
320 | </table>
321 | 
322 | Questo errore si verifica quando manca un URL in un attributo che lo richiede, ad esempio se viene rilevato un attributo `href` o `src` vuoto.
323 | 
324 | ### URL non valido
325 | 
326 | <table>
327 |   <tr>
328 |     <td class="col-thirty"><strong>Codice</strong></td>
329 |     <td>INVALID_URL_PROTOCOL</td>
330 |   </tr>
331 |    <tr>
332 |     <td class="col-thirty"><strong>Formato</strong></td>
333 |     <td>"Malformed URL '%3' for attribute '%1' in tag '%2'"</td>
334 |   </tr>
335 |    <tr>
336 |     <td class="col-thirty"><strong>Correzione</strong></td>
337 |     <td>Correggi l'URL inaccessibile.</td>
338 |   </tr>
339 | </table>
340 | 
341 | Questo errore si verifica quando un attributo contiene un URL non valido.
342 | 
343 | ### Protocollo dell'URL non valido
344 | 
345 | <table>
346 |   <tr>
347 |     <td class="col-thirty"><strong>Codice</strong></td>
348 |     <td>INVALID_URL_PROTOCOL</td>
349 |   </tr>
350 |    <tr>
351 |     <td class="col-thirty"><strong>Formato</strong></td>
352 |     <td>Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</td>
353 |   </tr>
354 |    <tr>
355 |     <td class="col-thirty"><strong>Correzione</strong></td>
356 |     <td>Sostituiscilo con un protocollo valido, ad esempio `http` potrebbe dover essere `https`.</td>
357 |   </tr>
358 | </table>
359 | 
360 | Questo errore si verifica quando i tag con attributi `href` o `src` devono essere impostati con determinati protocolli.
361 | Ad esempio, molti tag richiedono `https`.
362 | 
363 | ### Proprietà obbligatoria mancante nell'attributo
364 | 
365 | <table>
366 |   <tr>
367 |   	<td class="col-thirty"><strong>Codice</strong></td>
368 |   	<td>MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</td>
369 |   </tr>
370 |    <tr>
371 |   	<td class="col-thirty"><strong>Formato</strong></td>
372 |   	<td>"The property '%1' is missing from attribute '%2' in tag '%3'."</td>
373 |   </tr>
374 |    <tr>
375 |   	<td class="col-thirty"><strong>Correzione</strong></td>
376 |   	<td>Aggiungi la proprietà mancante.</td>
377 |   </tr>
378 | </table>
379 | 
380 | Attualmente questo errore si verifica se mancano le seguenti proprietà obbligatorie:
381 | 
382 | * `content="...ie=..."`
383 | * `content="...width=..."`
384 | * `content="...minimum-scale=..."`
385 | 
386 | 
387 | Si riferiscono ai tag previsti:
388 | 
389 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
390 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
391 | 
392 | 
393 | ### Attributi che si escludono a vicenda
394 | 
395 | <table>
396 |   <tr>
397 |   	<td class="col-thirty"><strong>Codice</strong></td>
398 |   	<td>MUTUALLY_EXCLUSIVE_ATTRS</td>
399 |   </tr>
400 |    <tr>
401 |   	<td class="col-thirty"><strong>Formato</strong></td>
402 |   	<td>"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</td>
403 |   </tr>
404 |    <tr>
405 |   	<td class="col-thirty"><strong>Correzione</strong></td>
406 |   	<td>Rimuovi uno degli attributi che si escludono a vicenda.</td>
407 |   </tr>
408 | </table>
409 | 
410 | Questo errore si verifica quando un tag ha entrambi gli attributi che si escludono a vicenda.
411 | Ad esempio, è consentito un solo tag tra i seguenti:
412 | 
413 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` o `src`
414 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` o `src`
415 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` o `srcdoc`
416 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` o `data-videoid`
417 | 
418 | 
419 | ### Attributo obbligatorio mancante tra quelli dell'elenco
420 | 
421 | <table>
422 |   <tr>
423 |   	<td class="col-thirty"><strong>Codice</strong></td>
424 |   	<td>MANDATORY_ONEOF_ATTR_MISSING</td>
425 |   </tr>
426 |    <tr>
427 |   	<td class="col-thirty"><strong>Formato</strong></td>
428 |   	<td>"The tag '%1' is missing a mandatory attribute - pick one of %2." </td>
429 |   </tr>
430 |    <tr>
431 |   	<td class="col-thirty"><strong>Correzione</strong></td>
432 |   	<td>Aggiungi l'attributo obbligatorio mancante scelto dalla serie di attributi forniti.</td>
433 |   </tr>
434 | </table>
435 | 
436 | Questo errore si verifica quando in un tag manca un attributo obbligatorio a scelta tra quelli forniti.
437 | Ad esempio, i seguenti tag richiedono uno dei due attributi possibili:
438 | 
439 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` o `src`
440 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` o `src`
441 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` o `srcdoc`
442 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` o `data-videoid`
443 | 
444 | 
445 | ### Tag principale errato
446 | 
447 | <table>
448 |   <tr>
449 |   	<td class="col-thirty"><strong>Codice</strong></td>
450 |   	<td>WRONG_PARENT_TAG</td>
451 |   </tr>
452 |    <tr>
453 |   	<td class="col-thirty"><strong>Formato</strong></td>
454 |   	<td>"The parent tag of tag '%1' is '%2', but it can only be '%3'."</td>
455 |   </tr>
456 |    <tr>
457 |   	<td class="col-thirty"><strong>Correzione</strong></td>
458 |   	<td>Imposta il tag come tag secondario diretto del tag principale obbligatorio.</td>
459 |   </tr>
460 | </table>
461 | 
462 | Alcuni tag specifici richiedono un tag principale diretto (anziché un lontano predecessore).
463 | Di seguito è elencato il tag principale richiesto per tag specifici (tag, principale):
464 | 
465 | * `!doctype` richiede il tag principale `root`.
466 | * `html` richiede il tag principale `!doctype`.
467 | * `head` richiede il tag principale `html`.
468 | * `body` richiede il tag principale `html`.
469 | * `link` richiede il tag principale `head`.
470 | * `meta` richiede il tag principale `head`.
471 | * `style amp-custom` richiede il tag principale `head`.
472 | * `style` richiede il tag principale `boilerplate (noscript)`.
473 | * `noscript` richiede il tag principale `head`.
474 | * `script` richiede il tag principale `head`.
475 | * `source` richiede un tag multimediale (`amp-audio`, `amp-video` e così via).
476 | 
477 | 
478 | ### Predecessore del tag non consentito
479 | 
480 | <table>
481 |   <tr>
482 |   	<td class="col-thirty"><strong>Codice</strong></td>
483 |   	<td>DISALLOWED_TAG_ANCESTOR</td>
484 |   </tr>
485 |    <tr>
486 |   	<td class="col-thirty"><strong>Formato</strong></td>
487 |   	<td>"The tag '%1' may not appear as a descendant of tag '%2'."</td>
488 |   </tr>
489 |    <tr>
490 |   	<td class="col-thirty"><strong>Correzione</strong></td>
491 |   	<td>Rimuovi (o sposta) il tag nidificato non consentito.</td>
492 |   </tr>
493 | </table>
494 | 
495 | Questo errore si verifica quando un tag è un discendente di un altro tag che non viene convalidato.
496 | Attualmente l'unico esempio è il tag `template`, che non può essere nidificato in un altro tag `template`.
497 | 
498 | ### Predecessore del tag obbligatorio
499 | 
500 | <table>
501 |   <tr>
502 |   	<td class="col-thirty"><strong>Codice</strong></td>
503 |   	<td>MANDATORY_TAG_ANCESTOR</td>
504 |   </tr>
505 |    <tr>
506 |   	<td class="col-thirty"><strong>Formato</strong></td>
507 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'."</td>
508 |   </tr>
509 |    <tr>
510 |   	<td class="col-thirty"><strong>Correzione</strong></td>
511 |   	<td>Rimuovi il tag o impostalo come discendente del tag specifico.</td>
512 |   </tr>
513 | </table>
514 | 
515 | I discendenti obbligatori sono definiti come `mandatory_ancestor` nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
516 | 
517 | Questo errore si verifica quando manca `mandatory_ancestor` (tag, predecessore) nei seguenti tag:
518 | 
519 | * `img` deve essere un discendente di `noscript`.
520 | * `video` deve essere un discendente di `noscript`.
521 | * `audio` deve essere un discendente di `noscript`.
522 | * `noscript` deve essere un discendente di `body`.
523 | 
524 | 
525 | ### Predecessore del tag obbligatorio con suggerimento
526 | 
527 | <table>
528 |   <tr>
529 |   	<td class="col-thirty"><strong>Codice</strong></td>
530 |   	<td>MANDATORY_TAG_ANCESTOR_WITH_HINT</td>
531 |   </tr>
532 |    <tr>
533 |   	<td class="col-thirty"><strong>Formato</strong></td>
534 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</td>
535 |   </tr>
536 |    <tr>
537 |   	<td class="col-thirty"><strong>Correzione</strong></td>
538 |   	<td>Rimuovi il tag, impostalo come discendente del tag specifico o sostituisci il tag con il tag suggerito.</td>
539 |   </tr>
540 | </table>
541 | 
542 | Questo errore si verifica quando nel documento AMP viene trovato uno dei seguenti tag non nidificato correttamente nel relativo tag principale obbligatorio:
543 | 
544 | * `img` non si trova all'interno del tag principale `noscript`.
545 | * `video` non si trova all'interno del tag principale `noscript`.
546 | * `audio` non si trova all'interno del tag principale `noscript`.
547 | * `noscript` non si trova all'interno del tag principale `body`.
548 | 
549 | 
550 | ### Tag univoco duplicato
551 | 
552 | <table>
553 |   <tr>
554 |   	<td class="col-thirty"><strong>Codice</strong></td>
555 |   	<td>DUPLICATE_UNIQUE_TAG</td>
556 |   </tr>
557 |    <tr>
558 |   	<td class="col-thirty"><strong>Formato</strong></td>
559 |   	<td>"The tag '%1' appears more than once in the document."</td>
560 |   </tr>
561 |    <tr>
562 |   	<td class="col-thirty"><strong>Correzione</strong></td>
563 |   	<td>Rimuovi uno dei tag duplicati dal documento AMP.</td>
564 |   </tr>
565 | </table>
566 | 
567 | Questo errore si verifica quando è consentita una sola istanza del tag e viene trovato un duplicato.
568 | 
569 | L'elenco completo di tag univoci è noto ed è riportato di seguito:
570 | 
571 | * `<doctype html>`
572 | * `<html amp>`
573 | * `<head>`
574 | * `<link rel=canonical href=...>`
575 | * `<link rel=amphtml href=...>`
576 | * `<meta charset="utf-8">`
577 | * `<meta viewport>`
578 | * `<style amp-custom>`
579 | * `<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>`
580 | * `<body>`
581 | * `<script src="https://cdn.ampproject.org/v0.js">`
582 | 
583 | 
584 | ## Errori di stile e layout
585 | 
586 | Prima di approfondire gli errori di stile e layout, è opportuno capire come funzionano [l'applicazione di stili](/docs/guides/responsive/style_pages.html) e il [layout](/docs/guides/responsive/control_layout.html) in AMP. Poiché le pagine AMP sono pagine HTML, l'applicazione di stili è molto simile a quella delle pagine HTML.
587 | Esistono però alcune limitazioni per garantire il rapido caricamento delle pagine; tali limitazioni vengono applicate dallo strumento di convalida AMP.
588 | 
589 | Il layout è più contenuto nelle pagine AMP.
590 | Ogni tag che viene visualizzato nella pagina richiede altezza e larghezza predefinite, riducendo notevolmente blocchi del rendering e dello scorrimento.
591 | Questo non significa che tu debba includere manualmente questi attributi.
592 | Per alcuni tipi di layout, lo strumento di convalida AMP non genera errori perché i valori predefiniti vengono dedotti.
593 | 
594 | Ogni tag AMP ha un elenco di attributi `supported_layouts`, come definito nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
595 | Lo strumento di convalida genera errori per i layout non supportati e cerca il layout predefinito nelle regole di convalida.
596 | 
597 | ### Foglio di stile troppo lungo
598 | 
599 | <table>
600 |   <tr>
601 |   	<td class="col-thirty"><strong>Codice</strong></td>
602 |   	<td>STYLESHEET_TOO_LONG</td>
603 |   </tr>
604 |    <tr>
605 |   	<td class="col-thirty"><strong>Formato</strong></td>
606 |   	<td>"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</td>
607 |   </tr>
608 |    <tr>
609 |   	<td class="col-thirty"><strong>Correzione</strong></td>
610 |   	<td>Riduci le dimensioni del foglio di stile in modo che siano inferiori a 50.000 byte.</td>
611 |   </tr>
612 | </table>
613 | 
614 | Lo strumento di convalida AMP genera questo errore quando stabilisce che le dimensioni dei contenuti degli stili all'interno di `<style amp-custom>` superano il limite di 50.000 byte.
615 | 
616 | ### Errore di sintassi CSS
617 | 
618 | <table>
619 |    <tr>
620 |   	<td class="col-thirty"><strong>Codice</strong></td>
621 |   	<td>CSS_SYNTAX</td>
622 |   </tr>
623 |    <tr>
624 |   	<td class="col-thirty"><strong>Formato</strong></td>
625 |   	<td>"CSS syntax error in tag '%1' - %2."</td>
626 |   </tr>
627 |    <tr>
628 |   	<td class="col-thirty"><strong>Correzione</strong></td>
629 |   	<td>Correggi l'errore di sintassi CSS.</td>
630 |   </tr>
631 | </table>
632 | 
633 | Questo errore si verifica quando sono presenti errori di sintassi CSS nel tag specificato.
634 | Se hai dubbi in merito alla causa dell'errore, prova a eseguire CSS tramite uno strumento di convalida CSS online, ad esempio [csslint](http://csslint.net/).
635 | 
636 | ### Errore di sintassi CSS nella regola specifica
637 | 
638 | <table>
639 |   <tr>
640 |   	<td class="col-thirty"><strong>Codice</strong></td>
641 |   	<td>CSS_SYNTAX_INVALID_AT_RULE</td>
642 |   </tr>
643 |    <tr>
644 |   	<td class="col-thirty"><strong>Formato</strong></td>
645 |   	<td>"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</td>
646 |   </tr>
647 |    <tr>
648 |   	<td class="col-thirty"><strong>Correzione</strong></td>
649 |   	<td>Correggi l'errore di sintassi CSS specificato.</td>
650 |   </tr>
651 | </table>
652 | 
653 | Questo errore si riferisce alle regole at-rule in CSS, per cui AMP consente soltanto alcune regole (vedi anche la [specifica AMP](/docs/reference/spec.html)).
654 | Ad esempio, la regola `@import` non è consentita.
655 | L'errore di convalida ti indica la regola esatta non valida, facilitandoti così la correzione.
656 | 
657 | ### Layout implicito non supportato dal tag AMP
658 | 
659 | <table>
660 |   <tr>
661 |   	<td class="col-thirty"><strong>Codice</strong></td>
662 |   	<td>IMPLIED_LAYOUT_INVALID</td>
663 |   </tr>
664 |    <tr>
665 |   	<td class="col-thirty"><strong>Formato</strong></td>
666 |   	<td>"The implied layout '%1' is not supported by tag '%2'."</td>
667 |   </tr>
668 |    <tr>
669 |   	<td class="col-thirty"><strong>Correzione</strong></td>
670 |   	<td>Specifica un attributo layout valido per il tag.</td>
671 |   </tr>
672 | </table>
673 | 
674 | Questo errore si verifica quando non specifichi un layout per il tag AMP e il layout implicito (basato su larghezza, altezza e dimensioni) non è supportato.
675 | Controlla i valori `supported_layout` del tag nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
676 | 
677 | L'effettivo comportamento del layout viene stabilito dall'attributo `layout`.
678 | Per ulteriori informazioni sul funzionamento del layout, leggi la pagina relativa a [come controllare il layout](/docs/guides/responsive/control_layout.html) e la [specifica relativa al sistema di layout HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
679 | 
680 | **Nota.** Se non specifichi il layout e non includi i valori `width` e `height`, il valore predefinito per il layout sarà CONTAINER. Lo strumento di convalida genera un errore perché il layout CONTAINER non è supportato nei tag AMP.
681 | Specifica un layout diverso da CONTAINER oppure aggiungi un valore `width` e/o `height` per eliminare l'errore.
682 | 
683 | ### Attributo non consentito per il layout implicito
684 | 
685 | <table>
686 |   <tr>
687 |     <td class="col-thirty"><strong>Codice</strong></td>
688 |     <td>ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</td>
689 |   </tr>
690 |    <tr>
691 |     <td class="col-thirty"><strong>Formato</strong></td>
692 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
693 |   </tr>
694 |    <tr>
695 |     <td class="col-thirty"><strong>Correzione</strong></td>
696 |     <td>Rimuovi l'attributo non consentito dal tag oppure specifica un layout in cui tale attributo sia consentito.</td>
697 |   </tr>
698 | </table>
699 | 
700 | Questo errore si verifica quando non specifichi un layout per il tag AMP e il layout implicito contiene un attributo non consentito.
701 | Gli attributi non consentiti per i tipi di layout sono descritti nella [specifica relativa al sistema di layout HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
702 | 
703 | ### Layout specificato non supportato dal tag AMP
704 | 
705 | <table>
706 |   <tr>
707 |   	<td class="col-thirty"><strong>Codice</strong></td>
708 |   	<td>SPECIFIED_LAYOUT_INVALID</td>
709 |   </tr>
710 |    <tr>
711 |   	<td class="col-thirty"><strong>Formato</strong></td>
712 |   	<td>"The specified layout '%1' is not supported by tag '%2'."</td>
713 |   </tr>
714 |    <tr>
715 |   	<td class="col-thirty"><strong>Correzione</strong></td>
716 |   	<td>Specifica un layout che sia supportato dal tag.</td>
717 |   </tr>
718 | </table>
719 | 
720 | Questo errore si verifica quando il layout specificato per il tag non è supportato.
721 | Controlla i valori `supported_layout` del tag nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
722 | 
723 | L'effettivo comportamento del layout viene stabilito dall'attributo `layout`.
724 | Per ulteriori informazioni sul funzionamento del layout, leggi la pagina relativa a [come controllare il layout](/docs/guides/responsive/control_layout.html) e la [specifica relativa al sistema di layout HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
725 | 
726 | ### Attributo non consentito per il layout specificato
727 | 
728 | <table>
729 |   <tr>
730 |     <td class="col-thirty"><strong>Codice</strong></td>
731 |     <td>ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</td>
732 |   </tr>
733 |    <tr>
734 |     <td class="col-thirty"><strong>Formato</strong></td>
735 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
736 |   </tr>
737 |    <tr>
738 |     <td class="col-thirty"><strong>Correzione</strong></td>
739 |     <td>Rimuovi l'attributo non consentito dal tag oppure specifica un layout in cui tale attributo sia consentito.</td>
740 |   </tr>
741 | </table>
742 | 
743 | Questo errore si verifica quando specifichi per il tag AMP un layout contenente un attributo non consentito.
744 | Gli attributi non consentiti per i tipi di layout sono descritti nella [specifica relativa al sistema di layout HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
745 | 
746 | ### Valore non valido per l'attributo richiesto dal layout
747 | 
748 | <table>
749 |   <tr>
750 |   	<td class="col-thirty"><strong>Codice</strong></td>
751 |   	<td>ATTR_VALUE_REQUIRED_BY_LAYOUT</td>
752 |   </tr>
753 |    <tr>
754 |   	<td class="col-thirty"><strong>Formato</strong></td>
755 |   	<td>"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</td>
756 |   </tr>
757 |    <tr>
758 |   	<td class="col-thirty"><strong>Correzione</strong></td>
759 |   	<td>Imposta il valore specificato per l'attributo.</td>
760 |   </tr>
761 | </table>
762 | 
763 | Questo errore si verifica quando il valore dell'attributo non è valido per il layout specificato.
764 | Per comprendere la causa di questo errore, è necessario comprendere bene i [diversi comportamenti dei layout](/docs/guides/responsive/control_layout.html#size-and-position-elements).
765 | 
766 | Supponi di impostare il layout `fixed-height` e di includere valori numerici per entrambi gli attributi `height` e `width`.
767 | Il valore del layout `fixed-height` è `height`.
768 | L'attributo `width` non deve essere presente o deve essere impostato su `auto`.
769 | Lo strumento di convalida genera l'errore ATTR_VALUE_REQUIRED_BY_LAYOUT.
770 | 
771 | ### Unità di misura relative alla larghezza e all'altezza disomogenee
772 | 
773 | <table>
774 |   <tr>
775 |   	<td class="col-thirty"><strong>Codice</strong></td>
776 |   	<td>INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</td>
777 |   </tr>
778 |    <tr>
779 |   	<td class="col-thirty"><strong>Formato</strong></td>
780 |   	<td>"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</td>
781 |   </tr>
782 |    <tr>
783 |   	<td class="col-thirty"><strong>Correzione</strong></td>
784 |   	<td>Specifica larghezze e altezze con la stessa unità di misura.</td>
785 |   </tr>
786 | </table>
787 | 
788 | Ad eccezione di `layout=fixed`, gli attributi relativi a larghezza e altezza devono essere espressi nella stessa unità di misura.
789 | In caso contrario viene generato questo errore.
790 | 
791 | Ad esempio, `<amp-img src="" layout="responsive" width="42px" height="42rem">` genera il seguente messaggio di errore:
792 | 
793 | "Le unità di misura relative alla larghezza e all'altezza sono disomogenee nel tag 'amp-img'. La larghezza è indicata in 'px' mentre l'altezza è indicata in 'rem'."
794 | 
795 | ## Errori relativi ai modelli
796 | 
797 | Le pagine AMP non possono includere sintassi dei modelli, a meno che la sintassi sia all'interno di un tag AMP ideato appositamente per includere i modelli, ad esempio [amp-mustache](/docs/reference/extended/amp-mustache.html).
798 | 
799 | È possibile includere modelli nei file di origine, purché l'output generato da tali file non contenga i modelli (leggi anche la pagina relativa all'[utilizzo dei preprocessori CSS](/docs/guides/responsive/style_pages.html#use-css-preprocessors)).
800 | 
801 | ### L'attributo contiene la sintassi di un modello
802 | 
803 | <table>
804 |   <tr>
805 |   	<td class="col-thirty"><strong>Codice</strong></td>
806 |   	<td>TEMPLATE_IN_ATTR_NAME</td>
807 |   </tr>
808 |    <tr>
809 |   	<td class="col-thirty"><strong>Formato</strong></td>
810 |   	<td>"Mustache template syntax in attribute name '%1' in tag '%2'."</td>
811 |   </tr>
812 |    <tr>
813 |   	<td class="col-thirty"><strong>Correzione</strong></td>
814 |   	<td>Rimuovi la sintassi del modello Mustache dall'attributo.</td>
815 |   </tr>
816 | </table>
817 | 
818 | Questo errore si verifica ogni volta che lo strumento di convalida trova la [sintassi del modello Mustache](https://mustache.github.io/mustache.5.html) nel valore di un attributo.
819 | 
820 | ### L'attributo contiene la sintassi di un modello senza escape
821 | 
822 | <table>
823 |   <tr>
824 |   	<td class="col-thirty"><strong>Codice</strong></td>
825 |   	<td>UNESCAPED_TEMPLATE_IN_ATTR_VALUE</td>
826 |   </tr>
827 |    <tr>
828 |   	<td class="col-thirty"><strong>Formato</strong></td>
829 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</td>
830 |   </tr>
831 |    <tr>
832 |   	<td class="col-thirty"><strong>Correzione</strong></td>
833 |   	<td>Aggiungi valori di escape al modello Mustache.</td>
834 |   </tr>
835 | </table>
836 | 
837 | Questo errore si verifica ogni volta che lo strumento di convalida trova la [sintassi del modello Mustache senza escape](https://mustache.github.io/mustache.5.html) nel valore di un attributo.
838 | 
839 | ### L'attributo contiene una porzione di modello
840 | 
841 | <table>
842 |   <tr>
843 |   	<td class="col-thirty"><strong>Codice</strong></td>
844 |   	<td>TEMPLATE_PARTIAL_IN_ATTR_VALUE</td>
845 |   </tr>
846 |    <tr>
847 |   	<td class="col-thirty"><strong>Formato</strong></td>
848 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</td>
849 |   </tr>
850 |    <tr>
851 |   	<td class="col-thirty"><strong>Correzione</strong></td>
852 |   	<td>Rimuovi la porzione di modello Mustache.</td>
853 |   </tr>
854 | </table>
855 | 
856 | Questo errore si verifica ogni volta che lo strumento di convalida trova una [porzione di modello Mustache](https://mustache.github.io/mustache.5.html) nel valore di un attributo.
857 | 
858 | ## Errori relativi a elementi obsoleti
859 | 
860 | ### Tag obsoleto
861 | 
862 | <table>
863 |   <tr>
864 |   	<td class="col-thirty"><strong>Codice</strong></td>
865 |   	<td>DEPRECATED_TAG</td>
866 |   </tr>
867 |    <tr>
868 |   	<td class="col-thirty"><strong>Formato</strong></td>
869 |   	<td>No error message defined as yet (no deprecated tags).</td>
870 |   </tr>
871 |    <tr>
872 |   	<td class="col-thirty"><strong>Correzione</strong></td>
873 |   	<td>Rimuovi il tag obsoleto.</td>
874 |   </tr>
875 | </table>
876 | 
877 | Questo avviso viene visualizzato quando nel documento AMP viene trovato un tag AMP che era valido in passato.
878 | Si tratta solo di un avviso; i documenti AMP con avvisi sono comunque validi.
879 | Attualmente non esistono tag obsoleti; l'avviso è destinato a futuri ritiri.
880 | 
881 | ### Attributo obsoleto
882 | 
883 | <table>
884 |   <tr>
885 |   	<td class="col-thirty"><strong>Codice</strong></td>
886 |   	<td>DEPRECATED_ATTR</td>
887 |   </tr>
888 |    <tr>
889 |   	<td class="col-thirty"><strong>Formato</strong></td>
890 |   	<td>"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</td>
891 |   </tr>
892 |    <tr>
893 |   	<td class="col-thirty"><strong>Correzione</strong></td>
894 |   	<td>È buona norma rimuovere l'attributo obsoleto.</td>
895 |   </tr>
896 | </table>
897 | 
898 | Questo avviso viene visualizzato quando nel documento AMP viene trovato un attributo AMP che era valido in passato.
899 | Si tratta solo di un avviso; i documenti AMP con avvisi sono comunque validi.
900 | 
901 | Identifica gli attributi obsoleti di ogni tag AMP cercando `deprecation` nella [specifica dello strumento di convalida AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
902 | </body>
903 | </html>
904 | 
```

--------------------------------------------------------------------------------
/content/docs/reference/validation_errors@pt_BR.md:
--------------------------------------------------------------------------------

```markdown
  1 | ---
  2 | $title: Erros de validação das AMP
  3 | ---
  4 | 
  5 | Os documentos válidos de AMP não podem incluir erros de validação.
  6 | O objetivo deste documento é ajudar você a entender melhor e corrigir erros de validação que encontrar ao [validar suas páginas AMP](/docs/guides/validate.html).
  7 | Para ter uma visão geral completa dos erros de validação, consulte as [especificações do validador das AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
  8 | 
  9 | [TOC]
 10 | 
 11 | ## Erros de atributos e tag HTML das AMP
 12 | 
 13 | ### Tag obrigatória ausente
 14 | 
 15 | <table>
 16 |    <tr>
 17 |   	<td class="col-thirty"><strong>Código</strong></td>
 18 |   	<td><span class="notranslate">MANDATORY_TAG_MISSING</span></td>
 19 |   </tr>
 20 |    <tr>
 21 |   	<td class="col-thirty"><strong>Formato</strong></td>
 22 |   	<td><span class="notranslate">"The mandatory tag '%1' is missing or incorrect."</span></td>
 23 |   </tr>
 24 |    <tr>
 25 |   	<td class="col-thirty"><strong>Correção</strong></td>
 26 |   	<td>Adicionar (ou corrigir) a tag HTML obrigatória.</td>
 27 |   </tr>
 28 | </table>
 29 | 
 30 | As seguintes tags precisam estar presentes em todos os documentos de AMP:
 31 | 
 32 | * <a name="doctype"></a>`<!doctype html>`
 33 | * <a name="html"></a>`<html amp> or <html ⚡>`
 34 | * <a name="head"></a>`<head>`
 35 | * <a name="canonical"></a>`<link rel="canonical" href="$SOME_URL" />`
 36 | * <a name="utf"></a>`<meta charset="utf-8">`
 37 | * <a name="viewport"></a>`<meta name="viewport" content="...">`
 38 | * <a name="boilerplate"></a>`<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>`
 39 | * <a name="ampscript"></a>`<script async src="https://cdn.ampproject.org/v0.js"></script>`
 40 | * <a name="body"></a>`<body>`
 41 | 
 42 | Essas tags obrigatórias incluem um campo `mandatory: true` nas [especificações do validador das AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii). Elas também são referidas nas [especificações das AMP](/docs/reference/spec.html).
 43 | 
 44 | ### A tag exigida por outra tag está ausente
 45 | 
 46 | <table>
 47 |    <tr>
 48 |   	<td class="col-thirty"><strong>Código</strong></td>
 49 |   	<td><span class="notranslate">TAG_REQUIRED_BY_MISSING</span></td>
 50 |   </tr>
 51 |    <tr>
 52 |   	<td class="col-thirty"><strong>Formato</strong></td>
 53 |   	<td><span class="notranslate">"The '%1' tag is missing or incorrect, but required by '%2'."</span></td>
 54 |   </tr>
 55 |    <tr>
 56 |   	<td class="col-thirty"><strong>Correção</strong></td>
 57 |   	<td>Adicionar (ou corrigir) a tag HTML exigida.</td>
 58 |   </tr>
 59 | </table>
 60 | 
 61 | O validador informa o erro `TAG_REQUIRED_BY_MISSING` quando encontra um componente estendido no documento de AMP, mas não encontra o `<script>` equivalente.
 62 | 
 63 | Os [componentes estendidos](/docs/reference/extended.html) precisam ser explicitamente incluídos no documento de AMP como elementos personalizados.
 64 | Para corrigir esses erros, acesse a página de referência do componente estendido, copie o script necessário e cole-lo no `<head>` do documento de AMP.
 65 | 
 66 | ### Tag não permitida
 67 | 
 68 | <table>
 69 |    <tr>
 70 |   	<td class="col-thirty"><strong>Código</strong></td>
 71 |   	<td><span class="notranslate">DISALLOWED_TAG</span></td>
 72 |   </tr>
 73 |    <tr>
 74 |   	<td class="col-thirty"><strong>Formato</strong></td>
 75 |   	<td><span class="notranslate">"The tag '%1' is disallowed."</span></td>
 76 |   </tr>
 77 |    <tr>
 78 |   	<td class="col-thirty"><strong>Correção</strong></td>
 79 |   	<td>Remover a tag não permitida.</td>
 80 |   </tr>
 81 | </table>
 82 | 
 83 | As tags são colocadas na lista de permissões, por isso não há uma lista definitiva de todas as tags não permitidas. No entanto, as [especificações das AMP](/docs/reference/spec.html) definem amplamente o conjunto de tags não permitidas.
 84 | 
 85 | ### Atributo obrigatório ausente
 86 | 
 87 | <table>
 88 |    <tr>
 89 |   	<td class="col-thirty"><strong>Código</strong></td>
 90 |   	<td><span class="notranslate">MANDATORY_ATTR_MISSING</span></td>
 91 |   </tr>
 92 |    <tr>
 93 |   	<td class="col-thirty"><strong>Formato</strong></td>
 94 |   	<td><span class="notranslate">"The mandatory attribute '%1' is missing in tag '%2'."</span></td>
 95 |   </tr>
 96 |    <tr>
 97 |   	<td class="col-thirty"><strong>Correção</strong></td>
 98 |   	<td>Adicionar atributo obrigatório à tag.</td>
 99 |   </tr>
100 | </table>
101 | 
102 | Os atributos obrigatórios para as tags AMP são definidos nas [especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
103 | Basta pesquisar a tag, visualizar os atributos listados e procurar `mandatory: true`.
104 | Os atributos obrigatórios para cada tag AMP também estão listados nas especificações da tag.
105 | 
106 | ### Valor de atributo inválido
107 | 
108 | <table>
109 |    <tr>
110 |   	<td class="col-thirty"><strong>Código</strong></td>
111 |   	<td><span class="notranslate">INVALID_ATTR_VALUE</span></td>
112 |   </tr>
113 |    <tr>
114 |   	<td class="col-thirty"><strong>Formato</strong></td>
115 |   	<td><span class="notranslate">"The attribute '%1' in tag '%2' is set to the invalid value '%3'."</span></td>
116 |   </tr>
117 |    <tr>
118 |   	<td class="col-thirty"><strong>Correção</strong></td>
119 |   	<td>Corrigir o valor do atributo para um que seja válido.</td>
120 |   </tr>
121 | </table>
122 | 
123 | Este erro indica que uma tag HTML tem um atributo com um nome permitido, mas com um valor não permitido.
124 | Por exemplo, um acionador comum para esse erro são valores inválidos para URLs. Todos os valores de URL (nos atributos `href` e `src`) precisam corresponder a um desses [possíveis valores de atributos](http://www.w3schools.com/tags/att_a_href.asp).
125 | 
126 | <strong>IMPORTANTE:</strong> Muitos valores de URL nas AMP exigem HTTPS. Se você estiver recebendo este erro e não souber ao certo o motivo, verifique as especificações relevantes da tag AMP para ver se o atributo requer HTTPS.
127 | 
128 | ### Atributo não permitido
129 | 
130 | <table>
131 |   <tr>
132 |   	<td class="col-thirty"><strong>Código</strong></td>
133 |   	<td><span class="notranslate">DISALLOWED_ATTR</span></td>
134 |   </tr>
135 |   <tr>
136 |   	<td class="col-thirty"><strong>Formato</strong></td>
137 |   	<td><span class="notranslate">"The attribute '%1' may not appear in tag '%2'."</span></td>
138 |   </tr>
139 |   <tr>
140 |   	<td class="col-thirty"><strong>Correção</strong></td>
141 |   	<td>Remover o atributo da tag HTML.</td>
142 |   </tr>
143 | </table>
144 | 
145 | Os atributos são colocados na lista de permissões, portanto não há uma lista definitiva de todos os atributos não permitidos.
146 | Para verificar os atributos compatíveis com cada tag específica, procure a tag HTML e depois o atributo `attrs` nas [especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
147 | 
148 | Além de uma lista de permissões de atributos específicos para cada tag, todas as tags AMP podem usar qualquer um dos atributos da lista de permissões `$GLOBAL_ATTRS`. Todos os atributos com o prefixo `"data-"` também estão na lista de permissões.
149 | 
150 | ### Texto obrigatório ausente ou incorreto
151 | 
152 | <table>
153 |   <tr>
154 |   	<td class="col-thirty"><strong>Código</strong></td>
155 |   	<td><span class="notranslate">MANDATORY_CDATA_MISSING_OR_INCORRECT</span></td>
156 |   </tr>
157 |    <tr>
158 |   	<td class="col-thirty"><strong>Formato</strong></td>
159 |   	<td><span class="notranslate">"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."</span></td>
160 |   </tr>
161 |    <tr>
162 |   	<td class="col-thirty"><strong>Correção</strong></td>
163 |   	<td>Adicionar ou corrigir o texto obrigatório dentro da tag.</td>
164 |   </tr>
165 | </table>
166 | 
167 | CDATA representa os dados de conteúdo entre uma tag HTML inicial e final, e atualmente é avaliado tanto com a lista de permissões quanto com a lista negra.
168 | As tags com CDATA obrigatório incluem:
169 | 
170 | [sourcecode:html]
171 | <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>
172 | [/sourcecode]
173 | 
174 | e
175 | 
176 | [sourcecode:html]
177 | <style amp-custom>
178 | [/sourcecode]
179 | 
180 | As mensagens detalhadas para isso podem ser uma das seguintes:
181 | 
182 | * "Mandatory style boilerplate (js enabled)"
183 | * "Mandatory style boilerplate (noscript)"
184 | * "Disallowed -amp- CSS class name prefix"
185 | * "Disallowed !important attribute in CSS"
186 | * "Disallowed @charset in CSS"
187 | * "Disallowed @import in CSS"
188 | * "Disallowed @namespace in CSS"
189 | * "Disallowed @supports in CSS"
190 | * "Disallowed @document in CSS"
191 | * "Disallowed @page in CSS"
192 | * "Disallowed @viewport in CSS"
193 | 
194 | ### Texto não permitido dentro da tag
195 | 
196 | <table>
197 |    <tr>
198 |   	<td class="col-thirty"><strong>Código</strong></td>
199 |   	<td><span class="notranslate">CDATA_VIOLATES_BLACKLIST</span></td>
200 |   </tr>
201 |    <tr>
202 |   	<td class="col-thirty"><strong>Formato</strong></td>
203 |   	<td><span class="notranslate">"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</span></td>
204 |   </tr>
205 |    <tr>
206 |   	<td class="col-thirty"><strong>Correção</strong></td>
207 |   	<td>Remover o texto não permitido.</td>
208 |   </tr>
209 | </table>
210 | 
211 | Os dados de CSS específicos foram colocados na lista negra para validar regras essenciais de CSS das AMP.
212 | 
213 | A lista a seguir inclui os dados de CSS na lista negra (ver também [`blacklisted_cdata_regex` nas especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii)):
214 | 
215 | * `"\\.i?-amp-"` ("CSS -amp- class name prefix")
216 | * `"!important"`
217 | * `"charset"`
218 | * `"@import"`
219 | * `"@namespace"`
220 | * `"@document"`
221 | * `"@page"`
222 | * `"@viewport"`
223 | 
224 | ### Propriedade não permitida dentro do atributo na tag
225 | 
226 | <table>
227 |    <tr>
228 |   	<td class="col-thirty"><strong>Código</strong></td>
229 |   	<td><span class="notranslate">DISALLOWED_PROPERTY_IN_ATTR_VALUE</span></td>
230 |   </tr>
231 |    <tr>
232 |   	<td class="col-thirty"><strong>Formato</strong></td>
233 |   	<td><span class="notranslate">"The property '%1' in attribute '%2' in tag '%3' is disallowed."</span></td>
234 |   </tr>
235 |    <tr>
236 |   	<td class="col-thirty"><strong>Correção</strong></td>
237 |   	<td>Remover a propriedade não permitida no atributo especificado.</td>
238 |   </tr>
239 | </table>
240 | 
241 | Este erro ocorre quando o nome da propriedade dentro de um atributo não é permitido.
242 | A propriedade do termo neste contexto faz referência aos dados estruturados chave/valor dentro de um atributo.
243 | Por exemplo, em `<meta name="viewport content="width=device-width;minimum-scale=1">`, `width` e `minimum-scale` são nomes de propriedade.
244 | 
245 | O seguinte exemplo resultará em um erro DISALLOWED_PROPERTY_IN_ATTR_VALUE:
246 | 
247 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
248 | 
249 | Como outro exemplo, o seguinte resultaria em um erro:
250 | 
251 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
252 | 
253 | Ele deveria ser: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
254 | 
255 | ### Valor de propriedade inválido
256 | 
257 | <table>
258 |    <tr>
259 |   	<td class="col-thirty"><strong>Código</strong></td>
260 |   	<td><span class="notranslate">INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</span></td>
261 |   </tr>
262 |    <tr>
263 |   	<td class="col-thirty"><strong>Formato</strong></td>
264 |   	<td><span class="notranslate">"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</span></td>
265 |   </tr>
266 |    <tr>
267 |   	<td class="col-thirty"><strong>Correção</strong></td>
268 |   	<td>Corrigir o valor da propriedade inválido.</td>
269 |   </tr>
270 | </table>
271 | 
272 | Este erro ocorre quando o valor da propriedade dentro de um atributo é inválido.
273 | A propriedade do termo neste contexto faz referência aos dados estruturados chave/valor dentro de um atributo.
274 | Por exemplo, em `<meta name="viewport content="width=device-width;minimum-scale=1">`, `device-width` e `1` são os valores de propriedade.
275 | 
276 | O seguinte resultaria em um erro NVALID_PROPERTY_VALUE_IN_ATTR_VALUE:
277 | 
278 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
279 | 
280 | Como outro exemplo, o seguinte resultaria em um erro:
281 | 
282 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
283 | 
284 | Ele deveria ser: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
285 | 
286 | ### URL ausente
287 | 
288 | <table>
289 |   <tr>
290 |     <td class="col-thirty"><strong>Código</strong></td>
291 |     <td><span class="notranslate">MISSING_URL</span></td>
292 |   </tr>
293 |    <tr>
294 |     <td class="col-thirty"><strong>Formato</strong></td>
295 |     <td><span class="notranslate">"Missing URL for attribute '%1' in tag '%2'."</span></td>
296 |   </tr>
297 |    <tr>
298 |     <td class="col-thirty"><strong>Correção</strong></td>
299 |     <td>Adicionar o URL válido.</td>
300 |   </tr>
301 | </table>
302 | 
303 | Este erro ocorre quando um atributo requer um URL que está ausente, por exemplo, um atributo `href` ou `src` vazio.
304 | 
305 | ### URL inválido
306 | 
307 | <table>
308 |   <tr>
309 |     <td class="col-thirty"><strong>Código</strong></td>
310 |     <td><span class="notranslate">INVALID_URL_PROTOCOL</span></td>
311 |   </tr>
312 |    <tr>
313 |     <td class="col-thirty"><strong>Formato</strong></td>
314 |     <td><span class="notranslate">"Malformed URL '%3' for attribute '%1' in tag '%2'"</span></td>
315 |   </tr>
316 |    <tr>
317 |     <td class="col-thirty"><strong>Correção</strong></td>
318 |     <td>Corrigir o URL incorreto.</td>
319 |   </tr>
320 | </table>
321 | 
322 | Este erro ocorre quando um atributo tem um URL, mas ele é inválido.
323 | 
324 | ### Protocolo de URL inválido
325 | 
326 | <table>
327 |   <tr>
328 |     <td class="col-thirty"><strong>Código</strong></td>
329 |     <td><span class="notranslate">INVALID_URL_PROTOCOL</span></td>
330 |   </tr>
331 |    <tr>
332 |     <td class="col-thirty"><strong>Formato</strong></td>
333 |     <td><span class="notranslate">Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</span></td>
334 |   </tr>
335 |    <tr>
336 |     <td class="col-thirty"><strong>Correção</strong></td>
337 |     <td>Alterar para um protocolo válido, por exemplo, talvez `http` precise ser `https`.</td>
338 |   </tr>
339 | </table>
340 | 
341 | Este erro ocorre para as tags que têm um `href` ou `src` que precisa ser definido para certos protocolos.
342 | Por exemplo, muitas tags exigem `https`.
343 | 
344 | ### Propriedade obrigatória ausente no atributo
345 | 
346 | <table>
347 |   <tr>
348 |   	<td class="col-thirty"><strong>Código</strong></td>
349 |   	<td><span class="notranslate">MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</span></td>
350 |   </tr>
351 |    <tr>
352 |   	<td class="col-thirty"><strong>Formato</strong></td>
353 |   	<td><span class="notranslate">"The property '%1' is missing from attribute '%2' in tag '%3'."</span></td>
354 |   </tr>
355 |    <tr>
356 |   	<td class="col-thirty"><strong>Correção</strong></td>
357 |   	<td>Adicionar a propriedade ausente.</td>
358 |   </tr>
359 | </table>
360 | 
361 | Atualmente, este erro ocorre se as seguintes propriedades obrigatórias estão ausentes:
362 | 
363 | * `content="...ie=..."`
364 | * `content="...width=..."`
365 | * `content="...minimum-scale=..."`
366 | 
367 | Elas fazem referência a tags esperadas:
368 | 
369 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
370 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
371 | 
372 | ### Atributos mutuamente exclusivos
373 | 
374 | <table>
375 |   <tr>
376 |   	<td class="col-thirty"><strong>Código</strong></td>
377 |   	<td><span class="notranslate">MUTUALLY_EXCLUSIVE_ATTRS</span></td>
378 |   </tr>
379 |    <tr>
380 |   	<td class="col-thirty"><strong>Formato</strong></td>
381 |   	<td><span class="notranslate">"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</span></td>
382 |   </tr>
383 |    <tr>
384 |   	<td class="col-thirty"><strong>Correção</strong></td>
385 |   	<td>Remover um dos atributos mutuamente exclusivos.</td>
386 |   </tr>
387 | </table>
388 | 
389 | Este erro ocorre quando uma tag tem os dois atributos mutuamente exclusivos.
390 | Por exemplo, somente um é permitido para as seguintes tags:
391 | 
392 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` ou `src`
393 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` ou `src`
394 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` ou `srcdoc`
395 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` ou `data-videoid`
396 | 
397 | ### Atributo obrigatório ausente na lista
398 | 
399 | <table>
400 |   <tr>
401 |   	<td class="col-thirty"><strong>Código</strong></td>
402 |   	<td><span class="notranslate">MANDATORY_ONEOF_ATTR_MISSING</span></td>
403 |   </tr>
404 |    <tr>
405 |   	<td class="col-thirty"><strong>Formato</strong></td>
406 |   	<td><span class="notranslate">"The tag '%1' is missing a mandatory attribute - pick one of %2." </span></td>
407 |   </tr>
408 |    <tr>
409 |   	<td class="col-thirty"><strong>Correção</strong></td>
410 |   	<td>Adicionar o atributo obrigatório ausente nas opções de atributo fornecidas.</td>
411 |   </tr>
412 | </table>
413 | 
414 | Este erro ocorre quando um atributo obrigatório de várias opções está ausente na tag.
415 | Por exemplo, estas tags exigem um atributo de uma das duas opções possíveis:
416 | 
417 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` ou `src`
418 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` ou `src`
419 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` ou `srcdoc`
420 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` ou `data-videoid`
421 | 
422 | ### Tag pai incorreta
423 | 
424 | <table>
425 |   <tr>
426 |   	<td class="col-thirty"><strong>Código</strong></td>
427 |   	<td><span class="notranslate">WRONG_PARENT_TAG</span></td>
428 |   </tr>
429 |    <tr>
430 |   	<td class="col-thirty"><strong>Formato</strong></td>
431 |   	<td><span class="notranslate">"The parent tag of tag '%1' is '%2', but it can only be '%3'."</span></td>
432 |   </tr>
433 |    <tr>
434 |   	<td class="col-thirty"><strong>Correção</strong></td>
435 |   	<td>Tornar a tag uma derivada direta da tag pai exigida.</td>
436 |   </tr>
437 | </table>
438 | 
439 | As tags específicas requerem um pai imediato (em vez do ancestral distante).
440 | A lista a seguir exibe o pai necessário para tags específicas (tag, pai):
441 | 
442 | * `!doctype` requer a tag pai `root`.
443 | * `html` requer a tag pai `!doctype`.
444 | * `head` requer a tag pai `html`.
445 | * `body` requer a tag pai `html`.
446 | * `link` requer a tag pai `head`.
447 | * `meta` requer a tag pai `head`.
448 | * `style amp-custom` requer a tag pai `head`.
449 | * `style` requer a tag pai `boilerplate (noscript)`.
450 | * `noscript` requer a tag pai `head`.
451 | * `script` requer a tag pai `head`.
452 | * `source` requer uma tag de mídia (`amp-audio`, `amp-video` etc.).
453 | 
454 | ### Tag ancestral não permitida
455 | 
456 | <table>
457 |   <tr>
458 |   	<td class="col-thirty"><strong>Código</strong></td>
459 |   	<td><span class="notranslate">DISALLOWED_TAG_ANCESTOR</span></td>
460 |   </tr>
461 |    <tr>
462 |   	<td class="col-thirty"><strong>Formato</strong></td>
463 |   	<td><span class="notranslate">"The tag '%1' may not appear as a descendant of tag '%2'."</span></td>
464 |   </tr>
465 |    <tr>
466 |   	<td class="col-thirty"><strong>Correção</strong></td>
467 |   	<td>Remover (ou mover) a tag aninhada não permitida.</td>
468 |   </tr>
469 | </table>
470 | 
471 | Este erro ocorre quando uma tag é descendente de outra tag inválida.
472 | Atualmente, o único exemplo é uma tag `template`, que não pode ser aninhada em outra tag `template`.
473 | 
474 | ### Tag ancestral obrigatória
475 | 
476 | <table>
477 |   <tr>
478 |   	<td class="col-thirty"><strong>Código</strong></td>
479 |   	<td><span class="notranslate">MANDATORY_TAG_ANCESTOR</span></td>
480 |   </tr>
481 |    <tr>
482 |   	<td class="col-thirty"><strong>Formato</strong></td>
483 |   	<td><span class="notranslate">"The tag '%1' may only appear as a descendant of tag '%2'."</span></td>
484 |   </tr>
485 |    <tr>
486 |   	<td class="col-thirty"><strong>Correção</strong></td>
487 |   	<td>Remover a tag ou torná-la uma descendente da tag específica.</td>
488 |   </tr>
489 | </table>
490 | 
491 | As descendentes obrigatórias são definidas nas [especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) como `mandatory_ancestor`.
492 | 
493 | O erro ocorre quando as seguintes tags estão sem `mandatory_ancestor` (tag ancestral):
494 | 
495 | * `img` precisa ser descendente de `noscript`.
496 | * `video` precisa ser descendente de `noscript`.
497 | * `audio` precisa ser descendente de `noscript`.
498 | * `noscript` precisa ser descendente de `body`.
499 | 
500 | ### Tag ancestral obrigatória com dica
501 | 
502 | <table>
503 |   <tr>
504 |   	<td class="col-thirty"><strong>Código</strong></td>
505 |   	<td><span class="notranslate">MANDATORY_TAG_ANCESTOR_WITH_HINT</span></td>
506 |   </tr>
507 |    <tr>
508 |   	<td class="col-thirty"><strong>Formato</strong></td>
509 |   	<td><span class="notranslate">"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</span></td>
510 |   </tr>
511 |    <tr>
512 |   	<td class="col-thirty"><strong>Correção</strong></td>
513 |   	<td>Remover a tag, torná-la uma descendente da tag específica ou substituí-la pela tag com dica.</td>
514 |   </tr>
515 | </table>
516 | 
517 | O erro ocorre quando uma das seguintes tags é encontrada no documento de AMP e não está devidamente aninhada na ancestral obrigatória:
518 | 
519 | * `img` não está no pai `noscript`.
520 | * `video` não está no pai `noscript`.
521 | * `audio` não está no pai `noscript`.
522 | * `noscript` não está no pai `body`.
523 | 
524 | ### Tag única duplicada
525 | 
526 | <table>
527 |   <tr>
528 |   	<td class="col-thirty"><strong>Código</strong></td>
529 |   	<td><span class="notranslate">DUPLICATE_UNIQUE_TAG</span></td>
530 |   </tr>
531 |    <tr>
532 |   	<td class="col-thirty"><strong>Formato</strong></td>
533 |   	<td><span class="notranslate">"The tag '%1' appears more than once in the document."</span></td>
534 |   </tr>
535 |    <tr>
536 |   	<td class="col-thirty"><strong>Correção</strong></td>
537 |   	<td>Remover uma das tags duplicadas do documento de AMP.</td>
538 |   </tr>
539 | </table>
540 | 
541 | Este erro ocorre quando somente uma instância da tag é permitida, e uma cópia for encontrada.
542 | 
543 | A lista completa de tags únicas é conhecida:
544 | 
545 | * `<doctype html>`
546 | * `<html amp>`
547 | * `<head>`
548 | * `<link rel=canonical href=...>`
549 | * `<link rel=amphtml href=...>`
550 | * `<meta charset="utf-8">`
551 | * `<meta viewport>`
552 | * `<style amp-custom>`
553 | * `<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>`
554 | * `<body>`
555 | * `<script src="https://cdn.ampproject.org/v0.js">`
556 | 
557 | ## Erros de estilo e layout
558 | 
559 | Antes de nos aprofundarmos em erros de estilo e layout, é importante compreender como os [estilos](/docs/guides/responsive/style_pages.html) e o [layout](/docs/guides/responsive/control_layout.html) funcionam nas AMP. Como as páginas AMP são páginas HTML, os estilos são muito parecidos com os de qualquer página HTML.
560 | No entanto, existem algumas restrições para garantir que as páginas sejam carregadas rapidamente, e o validador de AMP impõe essas restrições.
561 | 
562 | O layout é mais controlado em páginas AMP.
563 | Qualquer tag exibida na página requer uma altura e largura predefinidas, reduzindo significativamente os problemas de renderização e de rolagem.
564 | Isso não significa que você precise incluir manualmente esses atributos.
565 | Para certos tipos de layout, o validador de AMP não detecta erros, pois há a previsão dos valores padrão.
566 | 
567 | Cada tag AMP tem uma lista de `supported_layouts`, conforme definido nas [especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
568 | O validador informará erros de layouts não compatíveis e verificará as regras de validação para o layout predefinido.
569 | 
570 | ### Folha de estilos muito longa
571 | 
572 | <table>
573 |   <tr>
574 |   	<td class="col-thirty"><strong>Código</strong></td>
575 |   	<td><span class="notranslate">STYLESHEET_TOO_LONG</span></td>
576 |   </tr>
577 |    <tr>
578 |   	<td class="col-thirty"><strong>Formato</strong></td>
579 |   	<td><span class="notranslate">"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</span></td>
580 |   </tr>
581 |    <tr>
582 |   	<td class="col-thirty"><strong>Correção</strong></td>
583 |   	<td>Reduzir o tamanho da folha de estilo para menos de 50.000 bytes.</td>
584 |   </tr>
585 | </table>
586 | 
587 | O validador de AMP informa este erro quando detecta que o tamanho do conteúdo estilos dentro `<style amp-custom>` ultrapassa o limite de 50.000 bytes.
588 | 
589 | ### Erro de sintaxe CSS
590 | 
591 | <table>
592 |    <tr>
593 |   	<td class="col-thirty"><strong>Código</strong></td>
594 |   	<td><span class="notranslate">CSS_SYNTAX</span></td>
595 |   </tr>
596 |    <tr>
597 |   	<td class="col-thirty"><strong>Formato</strong></td>
598 |   	<td><span class="notranslate">"CSS syntax error in tag '%1' - %2."</span></td>
599 |   </tr>
600 |    <tr>
601 |   	<td class="col-thirty"><strong>Correção</strong></td>
602 |   	<td>Corrigir o erro de sintaxe CSS.</td>
603 |   </tr>
604 | </table>
605 | 
606 | Este erro ocorre quando existem erros de sintaxe CSS na tag especificada.
607 | Se você não tem certeza do que está gerando o erro, tente executar o CSS por meio de um validador CSS on-line, por exemplo, [csslint](http://csslint.net/).
608 | 
609 | ### Erro de sintaxe CSS em uma regra específica
610 | 
611 | <table>
612 |   <tr>
613 |   	<td class="col-thirty"><strong>Código</strong></td>
614 |   	<td><span class="notranslate">CSS_SYNTAX_INVALID_AT_RULE</span></td>
615 |   </tr>
616 |    <tr>
617 |   	<td class="col-thirty"><strong>Formato</strong></td>
618 |   	<td><span class="notranslate">"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</span></td>
619 |   </tr>
620 |    <tr>
621 |   	<td class="col-thirty"><strong>Correção</strong></td>
622 |   	<td>Corrigir o erro de sintaxe CSS especificado.</td>
623 |   </tr>
624 | </table>
625 | 
626 | Este erro se refere às regras "@" dentro do CSS, para os quais a AMP só permite algumas regras
627 | (veja também as [especificações das AMP](/docs/reference/spec.html)).
628 | Por exemplo, `@import` não é permitido.
629 | O erro de validação especificamente diz que a regra é inválida, facilitando a correção dela.
630 | 
631 | ### O layout implícito não é compatível com a tag AMP
632 | 
633 | <table>
634 |   <tr>
635 |   	<td class="col-thirty"><strong>Código</strong></td>
636 |   	<td><span class="notranslate">IMPLIED_LAYOUT_INVALID</span></td>
637 |   </tr>
638 |    <tr>
639 |   	<td class="col-thirty"><strong>Formato</strong></td>
640 |   	<td><span class="notranslate">"The implied layout '%1' is not supported by tag '%2'."</span></td>
641 |   </tr>
642 |    <tr>
643 |   	<td class="col-thirty"><strong>Correção</strong></td>
644 |   	<td>Fornecer um atributo de layout válido para a tag.</td>
645 |   </tr>
646 | </table>
647 | 
648 | Este erro ocorre quando você não especifica um layout para a tag AMP, e o layout implícito (com base na largura, na altura e nos tamanhos) não é compatível.
649 | Verifique os valores `supported_layout` para a tag nas [especificações do validador AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
650 | 
651 | O comportamento real do layout é determinado pelo atributo `layout`.
652 | Para saber mais sobre como funciona o layout, consulte [Como controlar o layout](/docs/guides/responsive/control_layout.html) e as [Especificações do sistema de layout das AMP em HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
653 | 
654 | **Observação:** se você não especificar o layout e não incluir os valores `width` e `height`, o layout será CONTAINER por padrão. O validador informará um erro, já que CONTAINER não é compatível com todas as tags AMP.
655 | Especifique um layout diferente de CONTAINER ou adicione um valor de `width` e/ou `height`, e o erro desaparecerá.
656 | 
657 | ### Atributo não permitido pelo layout implícito
658 | 
659 | <table>
660 |   <tr>
661 |     <td class="col-thirty"><strong>Código</strong></td>
662 |     <td><span class="notranslate">ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</span></td>
663 |   </tr>
664 |    <tr>
665 |     <td class="col-thirty"><strong>Formato</strong></td>
666 |     <td><span class="notranslate">"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</span></td>
667 |   </tr>
668 |    <tr>
669 |     <td class="col-thirty"><strong>Correção</strong></td>
670 |     <td>Remover o atributo não permitido da tag ou especificar um layout que permita isso.</td>
671 |   </tr>
672 | </table>
673 | 
674 | Este erro ocorre quando você não especifica um layout para a tag AMP, e o layout implícito tem um atributo não permitido.
675 | Os atributos não permitidos por tipos de layout são descritos nas [Especificações do sistema de layout das AMP em HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
676 | 
677 | ### O layout especificado não é compatível com a tag AMP
678 | 
679 | <table>
680 |   <tr>
681 |   	<td class="col-thirty"><strong>Código</strong></td>
682 |   	<td><span class="notranslate">SPECIFIED_LAYOUT_INVALID</span></td>
683 |   </tr>
684 |    <tr>
685 |   	<td class="col-thirty"><strong>Formato</strong></td>
686 |   	<td><span class="notranslate">"The specified layout '%1' is not supported by tag '%2'."</span></td>
687 |   </tr>
688 |    <tr>
689 |   	<td class="col-thirty"><strong>Correção</strong></td>
690 |   	<td>Especificar um layout compatível com a tag.</td>
691 |   </tr>
692 | </table>
693 | 
694 | Este erro ocorre quando o layout especificado para a tag não é compatível.
695 | Verifique os valores `supported_layout` para a tag nas [especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
696 | 
697 | O comportamento real do layout é determinado pelo atributo `layout`.
698 | Para saber mais sobre como funciona o layout, consulte [Como controlar o layout](/docs/guides/responsive/control_layout.html) e as [Especificações do sistema de layout das AMP em HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
699 | 
700 | ### Atributo não permitido pelo layout especificado
701 | 
702 | <table>
703 |   <tr>
704 |     <td class="col-thirty"><strong>Código</strong></td>
705 |     <td><span class="notranslate">ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</span></td>
706 |   </tr>
707 |    <tr>
708 |     <td class="col-thirty"><strong>Formato</strong></td>
709 |     <td><span class="notranslate">"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</span></td>
710 |   </tr>
711 |    <tr>
712 |     <td class="col-thirty"><strong>Correção</strong></td>
713 |     <td>Remover o atributo não permitido da tag ou especificar um layout que permita isso.</td>
714 |   </tr>
715 | </table>
716 | 
717 | Este erro ocorre quando você especifica um layout para a tag AMP, e ele tem um atributo não permitido.
718 | Os atributos não permitidos por tipos de layout são descritos nas [Especificações do sistema de layout das AMP em HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
719 | 
720 | ### Valor inválido para o atributo exigido pelo layout
721 | 
722 | <table>
723 |   <tr>
724 |   	<td class="col-thirty"><strong>Código</strong></td>
725 |   	<td><span class="notranslate">ATTR_VALUE_REQUIRED_BY_LAYOUT</span></td>
726 |   </tr>
727 |    <tr>
728 |   	<td class="col-thirty"><strong>Formato</strong></td>
729 |   	<td><span class="notranslate">"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</span></td>
730 |   </tr>
731 |    <tr>
732 |   	<td class="col-thirty"><strong>Correção</strong></td>
733 |   	<td>Definir o atributo para o valor especificado.</td>
734 |   </tr>
735 | </table>
736 | 
737 | Este erro ocorre quando o valor do atributo é inválido para o layout especificado.
738 | Para entender o que aciona esse erro, é necessário conhecer os [diferentes comportamentos de layouts](/docs/guides/responsive/control_layout.html#size-and-position-elements).
739 | 
740 | Vamos supor que você definiu o layout como `fixed-height` e incluiu valores numéricos para `height` e `width`.
741 | O layout de `fixed-height` assume um valor de `height`.
742 | O atributo `width` não pode estar presente ou deve ser definido como `auto`.
743 | O validador informa ATTR_VALUE_REQUIRED_BY_LAYOUT.
744 | 
745 | ### Unidades inconsistentes de largura e altura
746 | 
747 | <table>
748 |   <tr>
749 |   	<td class="col-thirty"><strong>Código</strong></td>
750 |   	<td><span class="notranslate">INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</span></td>
751 |   </tr>
752 |    <tr>
753 |   	<td class="col-thirty"><strong>Formato</strong></td>
754 |   	<td><span class="notranslate">"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</span></td>
755 |   </tr>
756 |    <tr>
757 |   	<td class="col-thirty"><strong>Correção</strong></td>
758 |   	<td>Fornecer larguras e alturas de unidades consistentes.</td>
759 |   </tr>
760 | </table>
761 | 
762 | Com exceção de `layout=fixed`, os atributos de largura e altura precisam ser expressos nas mesmas unidades.
763 | Quando isso não acontece, esse erro é acionado.
764 | 
765 | Por exemplo, `<amp-img src="" layout="responsive" width="42px" height="42rem">` resulta nesta mensagem de erro:
766 | 
767 | "Unidades inconsistentes para largura e altura na tag 'amp-img'. A largura é especificada em 'px' enquanto a altura é especificada em 'rem'."
768 | 
769 | ## Erros de modelos
770 | 
771 | As páginas AMP não podem incluir a sintaxe de modelos, a menos que essa sintaxe esteja dentro de uma tag AMP projetada especificamente para incluir modelos, como [amp-mustache](/docs/reference/extended/amp-mustache.html).
772 | 
773 | É possível incluir modelos em seus arquivos de origem, desde que a saída gerada por esses arquivos não tenha os modelos (veja também [Como usar pré-processadores CSS](/docs/guides/responsive/style_pages.html#use-css-preprocessors)).
774 | 
775 | ### O atributo contém sintaxe de modelo
776 | 
777 | <table>
778 |   <tr>
779 |   	<td class="col-thirty"><strong>Código</strong></td>
780 |   	<td><span class="notranslate">TEMPLATE_IN_ATTR_NAME</span></td>
781 |   </tr>
782 |    <tr>
783 |   	<td class="col-thirty"><strong>Formato</strong></td>
784 |   	<td><span class="notranslate">"Mustache template syntax in attribute name '%1' in tag '%2'."</span></td>
785 |   </tr>
786 |    <tr>
787 |   	<td class="col-thirty"><strong>Correção</strong></td>
788 |   	<td>Remover do atributo a sintaxe de modelo Mustache.</td>
789 |   </tr>
790 | </table>
791 | 
792 | Este erro ocorrerá sempre que o validador encontrar a [sintaxe de modelo Mustache](https://mustache.github.io/mustache.5.html) em um valor de atributo.
793 | 
794 | ### O atributo contém sintaxe de modelo sem escape
795 | 
796 | <table>
797 |   <tr>
798 |   	<td class="col-thirty"><strong>Código</strong></td>
799 |   	<td><span class="notranslate">UNESCAPED_TEMPLATE_IN_ATTR_VALUE</span></td>
800 |   </tr>
801 |    <tr>
802 |   	<td class="col-thirty"><strong>Formato</strong></td>
803 |   	<td><span class="notranslate">"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</span></td>
804 |   </tr>
805 |    <tr>
806 |   	<td class="col-thirty"><strong>Correção</strong></td>
807 |   	<td>Realizar o escape do modelo Mustache.</td>
808 |   </tr>
809 | </table>
810 | 
811 | Este erro ocorrerá sempre que o validador encontrar a [sintaxe do modelo Mustache sem escape](https://mustache.github.io/mustache.5.html) em um valor de atributo.
812 | 
813 | ### O atributo contém modelo parcial
814 | 
815 | <table>
816 |   <tr>
817 |   	<td class="col-thirty"><strong>Código</strong></td>
818 |   	<td><span class="notranslate">TEMPLATE_PARTIAL_IN_ATTR_VALUE</span></td>
819 |   </tr>
820 |    <tr>
821 |   	<td class="col-thirty"><strong>Formato</strong></td>
822 |   	<td><span class="notranslate">"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</span></td>
823 |   </tr>
824 |    <tr>
825 |   	<td class="col-thirty"><strong>Correção</strong></td>
826 |   	<td>Remover o modelo Mustache parcial.</td>
827 |   </tr>
828 | </table>
829 | 
830 | Este erro ocorre sempre que o validador encontrar um [modelo Mustache parcial](https://mustache.github.io/mustache.5.html) em um valor de atributo.
831 | 
832 | ## Erros de suspensão de uso
833 | 
834 | ### Tag com uso suspenso
835 | 
836 | <table>
837 |   <tr>
838 |   	<td class="col-thirty"><strong>Código</strong></td>
839 |   	<td><span class="notranslate">DEPRECATED_TAG</span></td>
840 |   </tr>
841 |    <tr>
842 |   	<td class="col-thirty"><strong>Formato</strong></td>
843 |   	<td><span class="notranslate">No error message defined as yet (no deprecated tags).</span></td>
844 |   </tr>
845 |    <tr>
846 |   	<td class="col-thirty"><strong>Correção</strong></td>
847 |   	<td>Remover a tag com uso suspenso.</td>
848 |   </tr>
849 | </table>
850 | 
851 | Este aviso ocorre quando uma tag AMP anteriormente válida é encontrada no documento de AMP.
852 | É somente um aviso, e os documentos de AMP com avisos continuam sendo válidos.
853 | No momento, não existem tags com uso suspenso. A advertência é reservada para futuras suspensões de uso.
854 | 
855 | ### Atributo com uso suspenso
856 | 
857 | <table>
858 |   <tr>
859 |   	<td class="col-thirty"><strong>Código</strong></td>
860 |   	<td><span class="notranslate">DEPRECATED_ATTR</span></td>
861 |   </tr>
862 |    <tr>
863 |   	<td class="col-thirty"><strong>Formato</strong></td>
864 |   	<td><span class="notranslate">"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</span></td>
865 |   </tr>
866 |    <tr>
867 |   	<td class="col-thirty"><strong>Correção</strong></td>
868 |   	<td>Como prática recomendada, remover o atributo com uso suspenso.</td>
869 |   </tr>
870 | </table>
871 | 
872 | Este aviso ocorre quando um atributo das AMP anteriormente válido é encontrado no documento de AMP.
873 | É somente um aviso, e os documentos de AMP com avisos continuam sendo válidos.
874 | 
875 | Identifique atributos com uso suspenso para cada tag AMP pesquisando `deprecation` nas [especificações do validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
876 | </body>
877 | </html>
878 | 
```

