#
tokens: 39398/50000 2/561 files (page 21/24)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 21 of 24. Use http://codebase.md/cloudflare/docs/imgs/todomvc-screenshot-3.png?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
│   │   │   │   └── [email protected]
│   │   │   └── 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
│   │   │       │   ├── [email protected]
│   │   │       │   ├── 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
│   │   │       │   ├── [email protected]
│   │   │       │   ├── 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
│   │   │       └── [email protected]
│   │   ├── 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
│   │   │   ├── [email protected]
│   │   │   ├── gizmodo_phone2.png
│   │   │   ├── gizmodo_phone2@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── 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
│   │   │   ├── [email protected]
│   │   │   ├── relaymedia_phone2.png
│   │   │   ├── relaymedia_phone2@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── slate_logo.png
│   │   │   ├── slate_phone1.png
│   │   │   ├── slate_phone1@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── slate_phone2.png
│   │   │   ├── slate_phone2@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── slate_thumb.jpg
│   │   │   ├── slate.pdf
│   │   │   ├── teads_logo.png
│   │   │   ├── teads_logo2.png
│   │   │   ├── teads_phone.png
│   │   │   ├── teads_phone@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── 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
│   │   │   ├── [email protected]
│   │   │   ├── wired_logo.png
│   │   │   ├── wired_phone1.png
│   │   │   ├── wired_phone1@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── wired_phone2.png
│   │   │   ├── wired_phone2@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── 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
│   │   │   ├── [email protected]
│   │   │   ├── home_icon_flexibility.svg
│   │   │   ├── home_icon_performance.svg
│   │   │   ├── home_phone_ebay.png
│   │   │   ├── home_phone_ebay@1_5x.png
│   │   │   ├── [email protected]
│   │   │   ├── 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
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── file-a-bug.md
│   │   │   └── github.md
│   │   ├── contribute.md
│   │   ├── get_started
│   │   │   ├── _blueprint.yaml
│   │   │   ├── create
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── basic_markup.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── basic_markup@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── basic_markup@zh_CN.md
│   │   │   │   ├── include_image.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── include_image@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── include_image@zh_CN.md
│   │   │   │   ├── prepare_for_discovery.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── prepare_for_discovery@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── prepare_for_discovery@zh_CN.md
│   │   │   │   ├── presentation_layout.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── presentation_layout@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── presentation_layout@zh_CN.md
│   │   │   │   ├── preview_and_validate.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── preview_and_validate@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── preview_and_validate@zh_CN.md
│   │   │   │   ├── publish.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── publish@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   └── publish@zh_CN.md
│   │   │   ├── create.md
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── create@pt_BR.md
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── create@zh_CN.md
│   │   │   ├── live_blog.md
│   │   │   ├── [email protected]
│   │   │   ├── login_requiring
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── add_comment.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── login.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── logout.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── summary.md
│   │   │   │   └── [email protected]
│   │   │   ├── login_requiring.md
│   │   │   └── [email protected]
│   │   ├── getting-started.md
│   │   ├── guides
│   │   │   ├── _blueprint.yaml
│   │   │   ├── author_develop
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── ads_on_amp
│   │   │   │   │   ├── _blueprint.yaml
│   │   │   │   │   ├── ads_getting_started.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── ads_tips.md
│   │   │   │   │   └── [email protected]
│   │   │   │   ├── ads_on_amp.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── amp_replacements.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── iframes.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── responsive_amp
│   │   │   │   │   ├── _blueprint.yaml
│   │   │   │   │   ├── art_direction.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── control_layout.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── control_layout@pt_BR.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── control_layout@zh_CN.md
│   │   │   │   │   ├── custom_fonts.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── placeholders.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── style_pages.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── style_pages@pt_BR.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   └── style_pages@zh_CN.md
│   │   │   │   ├── responsive_amp.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── responsive_amp@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── responsive_amp@zh_CN.md
│   │   │   │   ├── third_party_components.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── third_party_components@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   └── third_party_components@zh_CN.md
│   │   │   ├── author_develop.md
│   │   │   ├── debug
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── validate.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── validate@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   └── validate@zh_CN.md
│   │   │   ├── debug.md
│   │   │   ├── deploy
│   │   │   │   ├── _blueprint.yaml
│   │   │   │   ├── analytics_amp
│   │   │   │   │   ├── _blueprint.yaml
│   │   │   │   │   ├── analytics_basics.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── analytics_basics@pt_BR.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── analytics_basics@zh_CN.md
│   │   │   │   │   ├── deep_dive_analytics.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── deep_dive_analytics@pt_BR.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── deep_dive_analytics@zh_CN.md
│   │   │   │   │   ├── use_cases.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── use_cases@pt_BR.md
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   ├── [email protected]
│   │   │   │   │   └── use_cases@zh_CN.md
│   │   │   │   ├── analytics_amp.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── analytics_amp@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── analytics_amp@zh_CN.md
│   │   │   │   ├── discovery.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── discovery@pt_BR.md
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── [email protected]
│   │   │   │   ├── discovery@zh_CN.md
│   │   │   │   ├── engagement.md
│   │   │   │   └── [email protected]
│   │   │   ├── 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
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── experimental@pt_BR.md
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── experimental@zh_CN.md
│   │   │   ├── validation_errors.md
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── validation_errors@pt_BR.md
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   ├── [email protected]
│   │   │   └── 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
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── about-amp@pt_BR.md
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── about-amp@zh_CN.md
│   │   ├── about-how.yaml
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── about-how@pt_BR.yaml
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── 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
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── how-amp-works@pt_BR.md
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── how-amp-works@zh_CN.md
│   │   ├── metrics.html
│   │   ├── overview.yaml
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── overview@pt_BR.yaml
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── [email protected]
│   │   ├── 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
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── overview@pt_BR.md
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── overview@zh_CN.md
│       │   ├── platform-involvement.md
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── platform-involvement@pt_BR.md
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── platform-involvement@zh_CN.md
│       │   ├── publisher-monetization.md
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── publisher-monetization@pt_BR.md
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── [email protected]
│       │   ├── 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/[email protected]:
--------------------------------------------------------------------------------

```markdown
  1 | ---
  2 | $title: Errores de validación de AMP
  3 | ---
  4 | 
  5 | Los documentos de AMP no pueden tener errores de validación.
  6 | La finalidad de este documento es ayudarte a entender mejor y a corregir cualquier error de validación que encuentres al [validar páginas de AMP](/docs/guides/validate.html).
  7 | Para obtener una visión general completa de los errores de validación, consulta la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
  8 | 
  9 | [TOC]
 10 | 
 11 | ## Errores en atributos y etiquetas AMP HTML
 12 | 
 13 | ### Falta una etiqueta obligatoria
 14 | 
 15 | <table>
 16 |    <tr>
 17 |   	<td class="col-thirty"><strong>Código</strong></td>
 18 |   	<td>MANDATORY_TAG_MISSING</td>
 19 |   </tr>
 20 |    <tr>
 21 |   	<td class="col-thirty"><strong>Formato</strong></td>
 22 |   	<td>"The mandatory tag '%1' is missing or incorrect."</td>
 23 |   </tr>
 24 |    <tr>
 25 |   	<td class="col-thirty"><strong>Corrección</strong></td>
 26 |   	<td>Añade (o corrige) la etiqueta HTML obligatoria.</td>
 27 |   </tr>
 28 | </table>
 29 | 
 30 | Todos los documentos de AMP deben contener las siguientes etiquetas:
 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 | Estas etiquetas obligatorias incluyen un campo `mandatory: true` en la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii), y también se hace referencia a ellas en la [especificación de AMP](/docs/reference/spec.html).
 43 | 
 44 | ### Falta una etiqueta requerida por otra etiqueta
 45 | 
 46 | <table>
 47 |    <tr>
 48 |   	<td class="col-thirty"><strong>Código</strong></td>
 49 |   	<td>TAG_REQUIRED_BY_MISSING</td>
 50 |   </tr>
 51 |    <tr>
 52 |   	<td class="col-thirty"><strong>Formato</strong></td>
 53 |   	<td>"The '%1' tag is missing or incorrect, but required by '%2'."</td>
 54 |   </tr>
 55 |    <tr>
 56 |   	<td class="col-thirty"><strong>Corrección</strong></td>
 57 |   	<td>Añade (o corrige) la etiqueta HTML requerida.</td>
 58 |   </tr>
 59 | </table>
 60 | 
 61 | El validador emite el error `TAG_REQUIRED_BY_MISSING` cuando encuentra un componente ampliado en el documento de AMP, pero no encuentra su `<script>` equivalente.
 62 | 
 63 | Los [componentes ampliados](/docs/reference/extended.html) se deben incluir explícitamente en el documento de AMP como elementos personalizados.
 64 | Para corregir estos errores, ve a la página de referencia del componente ampliado, copia su secuencia de comandos requerida y pégala en el documento `<head>` de AMP.
 65 | 
 66 | ### Etiqueta no permitida
 67 | 
 68 | <table>
 69 |    <tr>
 70 |   	<td class="col-thirty"><strong>Código</strong></td>
 71 |   	<td>DISALLOWED_TAG</td>
 72 |   </tr>
 73 |    <tr>
 74 |   	<td class="col-thirty"><strong>Formato</strong></td>
 75 |   	<td>"The tag '%1' is disallowed."</td>
 76 |   </tr>
 77 |    <tr>
 78 |   	<td class="col-thirty"><strong>Corrección</strong></td>
 79 |   	<td>Quita la etiqueta no permitida.</td>
 80 |   </tr>
 81 | </table>
 82 | 
 83 | Las etiquetas se incluyen en una lista blanca, por lo que no hay ninguna lista que incluya todas las etiquetas no permitidas. Sin embargo, en la [especificación de AMP](/docs/reference/spec.html) se define en términos generales el conjunto de etiquetas no permitidas.
 84 | 
 85 | ### Falta un atributo obligatorio
 86 | 
 87 | <table>
 88 |    <tr>
 89 |   	<td class="col-thirty"><strong>Código</strong></td>
 90 |   	<td>MANDATORY_ATTR_MISSING</td>
 91 |   </tr>
 92 |    <tr>
 93 |   	<td class="col-thirty"><strong>Formato</strong></td>
 94 |   	<td>"The mandatory attribute '%1' is missing in tag '%2'."</td>
 95 |   </tr>
 96 |    <tr>
 97 |   	<td class="col-thirty"><strong>Corrección</strong></td>
 98 |   	<td>Añade el atributo obligatorio a la etiqueta.</td>
 99 |   </tr>
100 | </table>
101 | 
102 | Los atributos obligatorios para las etiquetas de AMP se definen en las [especificaciones del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
103 | Busca la etiqueta, observa los atributos enumerados y comprueba que aparezca `mandatory: true`.
104 | Los atributos obligatorios para cada etiqueta de AMP también aparecen en la especificación de la etiqueta.
105 | 
106 | ### Valor del atributo no válido
107 | 
108 | <table>
109 |    <tr>
110 |   	<td class="col-thirty"><strong>Código</strong></td>
111 |   	<td>INVALID_ATTR_VALUE</td>
112 |   </tr>
113 |    <tr>
114 |   	<td class="col-thirty"><strong>Formato</strong></td>
115 |   	<td>"The attribute '%1' in tag '%2' is set to the invalid value '%3'."</td>
116 |   </tr>
117 |    <tr>
118 |   	<td class="col-thirty"><strong>Corrección</strong></td>
119 |   	<td>Corrige el valor del atributo para que sea válido.</td>
120 |   </tr>
121 | </table>
122 | 
123 | Este error indica que una etiqueta HTML tiene un atributo con un nombre permitido, pero con un valor no permitido.
124 | Por ejemplo, esto pasa a veces cuando las URL tienen valores no válidos. Todos los valores de URL (en los atributos `href` y `src`) deben coincidir con uno de estos [posibles valores de atributos](http://www.w3schools.com/tags/att_a_href.asp).
125 | 
126 | <strong>IMPORTANTE:</strong> Muchos valores de URL en AMP requieren HTTPS. Si recibes este error y no sabes por qué, consulta la especificación de la etiqueta AMP pertinente para ver si el atributo requiere HTTPS.
127 | 
128 | ### Atributo no permitido
129 | 
130 | <table>
131 |   <tr>
132 |   	<td class="col-thirty"><strong>Código</strong></td>
133 |   	<td>DISALLOWED_ATTR</td>
134 |   </tr>
135 |   <tr>
136 |   	<td class="col-thirty"><strong>Formato</strong></td>
137 |   	<td>"The attribute '%1' may not appear in tag '%2'."</td>
138 |   </tr>
139 |   <tr>
140 |   	<td class="col-thirty"><strong>Corrección</strong></td>
141 |   	<td>Quita el atributo de la etiqueta HTML.</td>
142 |   </tr>
143 | </table>
144 | 
145 | Los atributos se incluyen en una lista blanca, por lo que no hay ninguna lista definitiva de todos los atributos no permitidos.
146 | Para consultar qué atributos admite cada etiqueta, busca la etiqueta HTML y, a continuación, `attrs` en la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
147 | 
148 | Todas las etiquetas de AMP pueden utilizar, además de los atributos específicos recogidos en una lista blanca para cada etiqueta, cualquiera de los atributos que se incluyan en la sección `$GLOBAL_ATTRS` de la lista blanca; todos los atributos con el prefijo `"data-"` también se incluyen en esta lista.
149 | 
150 | ### Falta texto obligatorio o el texto es incorrecto
151 | 
152 | <table>
153 |   <tr>
154 |   	<td class="col-thirty"><strong>Código</strong></td>
155 |   	<td>MANDATORY_CDATA_MISSING_OR_INCORRECT</td>
156 |   </tr>
157 |    <tr>
158 |   	<td class="col-thirty"><strong>Formato</strong></td>
159 |   	<td>"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."</td>
160 |   </tr>
161 |    <tr>
162 |   	<td class="col-thirty"><strong>Corrección</strong></td>
163 |   	<td>Añade o corrige el texto obligatorio que contiene la etiqueta.</td>
164 |   </tr>
165 | </table>
166 | 
167 | CDATA son los datos de contenido situado entre una etiqueta HTML de inicio y otra de final. Actualmente, se compara con listas blancas y listas negras.
168 | Las etiquetas con CDATA obligatorio incluyen:
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 | Y:
175 | 
176 | [sourcecode:html]
177 | <style amp-custom>
178 | [/sourcecode]
179 | 
180 | Este caso se describe con uno de los siguientes mensajes detallados:
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 no permitido dentro de la etiqueta
195 | 
196 | <table>
197 |    <tr>
198 |   	<td class="col-thirty"><strong>Código</strong></td>
199 |   	<td>CDATA_VIOLATES_BLACKLIST</td>
200 |   </tr>
201 |    <tr>
202 |   	<td class="col-thirty"><strong>Formato</strong></td>
203 |   	<td>"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</td>
204 |   </tr>
205 |    <tr>
206 |   	<td class="col-thirty"><strong>Corrección</strong></td>
207 |   	<td>Quita el texto no permitido.</td>
208 |   </tr>
209 | </table>
210 | 
211 | Los datos de CSS específicos se han incluido en la lista negra para validar reglas fundamentales de AMP para CSS.
212 | 
213 | A continuación puedes consultar la lista de datos CSS incluidos en la lista negra (consulta también <a href="https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii">`blacklisted_cdata_regex` en la especificación del validador de AMP</a>):
214 | 
215 | * `"\\.i?-amp-"` ("prefijo de nombre de clase -amp- CSS")
216 | * `"!important"`
217 | * `"charset"`
218 | * `"@import"`
219 | * `"@namespace"`
220 | * `"@document"`
221 | * `"@page"`
222 | * `"@viewport"`
223 | 
224 | ### Propiedad no permitida dentro del atributo incluido en la etiqueta
225 | 
226 | <table>
227 |    <tr>
228 |   	<td class="col-thirty"><strong>Código</strong></td>
229 |   	<td>DISALLOWED_PROPERTY_IN_ATTR_VALUE</td>
230 |   </tr>
231 |    <tr>
232 |   	<td class="col-thirty"><strong>Formato</strong></td>
233 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is disallowed."</td>
234 |   </tr>
235 |    <tr>
236 |   	<td class="col-thirty"><strong>Corrección</strong></td>
237 |   	<td>Quita la propiedad no permitida en el atributo especificado.</td>
238 |   </tr>
239 | </table>
240 | 
241 | Este error se produce cuando el nombre de la propiedad no se permite dentro de un atributo.
242 | La propiedad del término, en este contexto, hace referencia a los datos clave-valor estructurados dentro de un atributo.
243 | Por ejemplo, en `<meta name="viewport content="width=device-width;minimum-scale=1">`, `width` y `minimum-scale` son nombres de propiedades.
244 | 
245 | La cadena siguiente tiene como resultado un error DISALLOWED_PROPERTY_IN_ATTR_VALUE:
246 | 
247 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
248 | 
249 | Igual que el ejemplo anterior, la cadena siguiente daría lugar a un error:
250 | 
251 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
252 | 
253 | Debería ser `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
254 | 
255 | ### Valor de propiedad no válido
256 | 
257 | <table>
258 |    <tr>
259 |   	<td class="col-thirty"><strong>Código</strong></td>
260 |   	<td>INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</td>
261 |   </tr>
262 |    <tr>
263 |   	<td class="col-thirty"><strong>Formato</strong></td>
264 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</td>
265 |   </tr>
266 |    <tr>
267 |   	<td class="col-thirty"><strong>Corrección</strong></td>
268 |   	<td>Corrige el valor de propiedad no válido.</td>
269 |   </tr>
270 | </table>
271 | 
272 | Este error se produce cuando el valor de la propiedad dentro de un atributo no es válido.
273 | La propiedad del término, en este contexto, hace referencia a los datos clave-valor estructurados dentro de un atributo.
274 | Por ejemplo, en `<meta name="viewport content="width=device-width;minimum-scale=1">`, `device-width` y `1` son valores de propiedad.
275 | 
276 | La cadena siguiente devuelve un error INVALID_PROPERTY_VALUE_IN_ATTR_VALUE:
277 | 
278 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
279 | 
280 | Igual que el ejemplo anterior, la cadena siguiente daría lugar a un error:
281 | 
282 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
283 | 
284 | Debería ser `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
285 | 
286 | ### Falta la URL
287 | 
288 | <table>
289 |   <tr>
290 |     <td class="col-thirty"><strong>Código</strong></td>
291 |     <td>MISSING_URL</td>
292 |   </tr>
293 |    <tr>
294 |     <td class="col-thirty"><strong>Formato</strong></td>
295 |     <td>"Missing URL for attribute '%1' in tag '%2'."</td>
296 |   </tr>
297 |    <tr>
298 |     <td class="col-thirty"><strong>Corrección</strong></td>
299 |     <td>Añade la URL válida.</td>
300 |   </tr>
301 | </table>
302 | 
303 | Este error se produce cuando un atributo requiere una URL pero no la tiene. Por ejemplo, un atributo `href` o `src` vacío.
304 | 
305 | ### URL no válida
306 | 
307 | <table>
308 |   <tr>
309 |     <td class="col-thirty"><strong>Código</strong></td>
310 |     <td>INVALID_URL_PROTOCOL</td>
311 |   </tr>
312 |    <tr>
313 |     <td class="col-thirty"><strong>Formato</strong></td>
314 |     <td>"Malformed URL '%3' for attribute '%1' in tag '%2'"</td>
315 |   </tr>
316 |    <tr>
317 |     <td class="col-thirty"><strong>Corrección</strong></td>
318 |     <td>Corrige la URL incorrecta.</td>
319 |   </tr>
320 | </table>
321 | 
322 | Este error se produce cuando un atributo tiene una URL, pero no es válida.
323 | 
324 | ### Protocolo de URL no válido
325 | 
326 | <table>
327 |   <tr>
328 |     <td class="col-thirty"><strong>Código</strong></td>
329 |     <td>INVALID_URL_PROTOCOL</td>
330 |   </tr>
331 |    <tr>
332 |     <td class="col-thirty"><strong>Formato</strong></td>
333 |     <td>Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</td>
334 |   </tr>
335 |    <tr>
336 |     <td class="col-thirty"><strong>Corrección</strong></td>
337 |     <td>Cámbialo por un protocolo válido, por ejemplo, cambia `http` por `https`.</td>
338 |   </tr>
339 | </table>
340 | 
341 | Este error se produce en etiquetas cuyos atributos `href` o `src` se deben establecer en ciertos protocolos.
342 | Por ejemplo, muchas etiquetas requieren `https`.
343 | 
344 | ### Falta una propiedad obligatoria de un atributo
345 | 
346 | <table>
347 |   <tr>
348 |   	<td class="col-thirty"><strong>Código</strong></td>
349 |   	<td>MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</td>
350 |   </tr>
351 |    <tr>
352 |   	<td class="col-thirty"><strong>Formato</strong></td>
353 |   	<td>"The property '%1' is missing from attribute '%2' in tag '%3'."</td>
354 |   </tr>
355 |    <tr>
356 |   	<td class="col-thirty"><strong>Corrección</strong></td>
357 |   	<td>Añade la propiedad que falta.</td>
358 |   </tr>
359 | </table>
360 | 
361 | Actualmente, este error se produce si faltan estas propiedades obligatorias:
362 | 
363 | * `content="...ie=..."`
364 | * `content="...width=..."`
365 | * `content="...minimum-scale=..."`
366 | 
367 | Hacen referencia a etiquetas previstas:
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 que se excluyen mutuamente
373 | 
374 | <table>
375 |   <tr>
376 |   	<td class="col-thirty"><strong>Código</strong></td>
377 |   	<td>MUTUALLY_EXCLUSIVE_ATTRS</td>
378 |   </tr>
379 |    <tr>
380 |   	<td class="col-thirty"><strong>Formato</strong></td>
381 |   	<td>"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</td>
382 |   </tr>
383 |    <tr>
384 |   	<td class="col-thirty"><strong>Corrección</strong></td>
385 |   	<td>Quita uno de los atributos que se excluyen mutuamente.</td>
386 |   </tr>
387 | </table>
388 | 
389 | Este error se produce cuando una etiqueta contiene dos atributos que se excluyen mutuamente.
390 | Por ejemplo, en los siguientes casos, solo se permite uno de los dos atributos:
391 | 
392 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` o `src`
393 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` o `src`
394 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` o `srcdoc`
395 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` o `data-videoid`
396 | 
397 | ### Falta un atributo obligatorio en la lista
398 | 
399 | <table>
400 |   <tr>
401 |   	<td class="col-thirty"><strong>Código</strong></td>
402 |   	<td>MANDATORY_ONEOF_ATTR_MISSING</td>
403 |   </tr>
404 |    <tr>
405 |   	<td class="col-thirty"><strong>Formato</strong></td>
406 |   	<td>"The tag '%1' is missing a mandatory attribute - pick one of %2."</td>
407 |   </tr>
408 |    <tr>
409 |   	<td class="col-thirty"><strong>Corrección</strong></td>
410 |   	<td>Añade el atributo obligatorio que falta en la selección de atributos proporcionados.</td>
411 |   </tr>
412 | </table>
413 | 
414 | Este error se produce cuando a una etiqueta le falta un atributo requerido de varias opciones.
415 | Por ejemplo, las siguientes etiquetas requieren uno de los dos atributos posibles:
416 | 
417 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` o `src`
418 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` o `src`
419 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` o `srcdoc`
420 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` o `data-videoid`
421 | 
422 | ### Etiqueta principal incorrecta
423 | 
424 | <table>
425 |   <tr>
426 |   	<td class="col-thirty"><strong>Código</strong></td>
427 |   	<td>WRONG_PARENT_TAG</td>
428 |   </tr>
429 |    <tr>
430 |   	<td class="col-thirty"><strong>Formato</strong></td>
431 |   	<td>"The parent tag of tag '%1' is '%2', but it can only be '%3'."</td>
432 |   </tr>
433 |    <tr>
434 |   	<td class="col-thirty"><strong>Corrección</strong></td>
435 |   	<td>Convierte la etiqueta en una etiqueta secundaria directa de la principal obligatoria.</td>
436 |   </tr>
437 | </table>
438 | 
439 | Algunas etiquetas requieren una etiqueta principal inmediata (en contraposición a una etiqueta antecesora lejana).
440 | A continuación se enumeran las etiquetas principales necesarias para etiquetas concretas (etiqueta, principal):
441 | 
442 | * `!doctype` requiere la etiqueta principal `root`.
443 | * `html` requiere la etiqueta principal `!doctype`.
444 | * `head` requiere la etiqueta principal `html`.
445 | * `body` requiere la etiqueta principal `html`.
446 | * `link` requiere la etiqueta principal `head`.
447 | * `meta` requiere la etiqueta principal `head`.
448 | * `style amp-custom` requiere la etiqueta principal `head`.
449 | * `style` requiere la etiqueta principal `boilerplate (noscript)`.
450 | * `noscript` requiere la etiqueta principal `head`.
451 | * `script` requiere la etiqueta principal `head`.
452 | * `source` requiere una etiqueta multimedia (`amp-audio`, `amp-video`, etc.).
453 | 
454 | ### Etiqueta antecesora no permitida
455 | 
456 | <table>
457 |   <tr>
458 |   	<td class="col-thirty"><strong>Código</strong></td>
459 |   	<td>DISALLOWED_TAG_ANCESTOR</td>
460 |   </tr>
461 |    <tr>
462 |   	<td class="col-thirty"><strong>Formato</strong></td>
463 |   	<td>"The tag '%1' may not appear as a descendant of tag '%2'."</td>
464 |   </tr>
465 |    <tr>
466 |   	<td class="col-thirty"><strong>Corrección</strong></td>
467 |   	<td>Quita (o mueve) la etiqueta anidada no permitida.</td>
468 |   </tr>
469 | </table>
470 | 
471 | Este error se produce cuando una etiqueta es descendiente de otra etiqueta que no se valida.
472 | En la actualidad, el único ejemplo es una etiqueta `template`, que podría no estar anidada en otra etiqueta `template`.
473 | 
474 | ### Etiqueta antecesora obligatoria
475 | 
476 | <table>
477 |   <tr>
478 |   	<td class="col-thirty"><strong>Código</strong></td>
479 |   	<td>MANDATORY_TAG_ANCESTOR</td>
480 |   </tr>
481 |    <tr>
482 |   	<td class="col-thirty"><strong>Formato</strong></td>
483 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'."</td>
484 |   </tr>
485 |    <tr>
486 |   	<td class="col-thirty"><strong>Corrección</strong></td>
487 |   	<td>Quita la etiqueta o conviértela en descendiente de la etiqueta específica.</td>
488 |   </tr>
489 | </table>
490 | 
491 | En la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) se hace referencia a los descendientes obligatorios como `mandatory_ancestor`.
492 | 
493 | El error se produce cuando a las siguientes etiquetas les falta su `mandatory_ancestor` (etiqueta, antecesora):
494 | 
495 | * `img` debe ser descendiente de `noscript`.
496 | * `video` debe ser descendiente de `noscript`.
497 | * `audio` debe ser descendiente de `noscript`.
498 | * `noscript` debe ser descendiente de `body`.
499 | 
500 | ### Etiqueta antecesora obligatoria con sugerencia
501 | 
502 | <table>
503 |   <tr>
504 |   	<td class="col-thirty"><strong>Código</strong></td>
505 |   	<td>MANDATORY_TAG_ANCESTOR_WITH_HINT</td>
506 |   </tr>
507 |    <tr>
508 |   	<td class="col-thirty"><strong>Formato</strong></td>
509 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</td>
510 |   </tr>
511 |    <tr>
512 |   	<td class="col-thirty"><strong>Corrección</strong></td>
513 |   	<td>Quita la etiqueta, conviértela en descendiente de la etiqueta específica o cambia la etiqueta por la etiqueta con sugerencia.</td>
514 |   </tr>
515 | </table>
516 | 
517 | El error se produce cuando una de las siguientes etiquetas se encuentra en el documento de AMP y no está anidada correctamente en su etiqueta principal obligatoria:
518 | 
519 | * `img` no está dentro de la etiqueta `noscript` principal.
520 | * `video` no está dentro de la etiqueta `noscript` principal.
521 | * `audio` no está dentro de la etiqueta `noscript` principal.
522 | * `noscript` no está dentro de la etiqueta `body` principal.
523 | 
524 | ### Etiqueta única duplicada
525 | 
526 | <table>
527 |   <tr>
528 |   	<td class="col-thirty"><strong>Código</strong></td>
529 |   	<td>DUPLICATE_UNIQUE_TAG</td>
530 |   </tr>
531 |    <tr>
532 |   	<td class="col-thirty"><strong>Formato</strong></td>
533 |   	<td>"The tag '%1' appears more than once in the document."</td>
534 |   </tr>
535 |    <tr>
536 |   	<td class="col-thirty"><strong>Corrección</strong></td>
537 |   	<td>Quita una de las etiquetas duplicadas del documento de AMP.</td>
538 |   </tr>
539 | </table>
540 | 
541 | Este error se produce cuando solo está permitido usar una instancia de la etiqueta y se encuentra un duplicado.
542 | 
543 | La lista completa de etiquetas únicas es la siguiente:
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 | ## Errores de estilo y de diseño
558 | 
559 | Antes de entrar en los errores de [estilo](/docs/guides/responsive/style_pages.html) y de [diseño](/docs/guides/responsive/control_layout.html), hay que entender cómo funcionan en AMP. Como las páginas AMP son páginas HTML, el estilo es prácticamente el mismo que el de cualquier página HTML.
560 | Sin embargo, para garantizar que las páginas se carguen rápidamente, presentan algunas restricciones que el validador de AMP se encarga de hacer cumplir.
561 | 
562 | El diseño está más controlado en las páginas de AMP.
563 | Todas las etiquetas que se muestran en la página deben tener una altura y una anchura predefinidas. De este modo, se reducen notablemente el procesamiento y los errores en los desplazamientos por la página.
564 | Pero esto no significa que debas incluir manualmente estos atributos,
565 | ya que en algunos tipos de diseño, el validador de AMP no devuelve errores, sino que adopta los valores predeterminados.
566 | 
567 | Todas las etiquetas de AMP tienen una lista de `supported_layouts`, como se define en la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
568 | El validador devolverá errores cuando detecte diseños no admitidos y aplicará reglas de validación para el diseño predefinido.
569 | 
570 | ### Hoja de estilo demasiado larga
571 | 
572 | <table>
573 |   <tr>
574 |   	<td class="col-thirty"><strong>Código</strong></td>
575 |   	<td>STYLESHEET_TOO_LONG</td>
576 |   </tr>
577 |    <tr>
578 |   	<td class="col-thirty"><strong>Formato</strong></td>
579 |   	<td>"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</td>
580 |   </tr>
581 |    <tr>
582 |   	<td class="col-thirty"><strong>Corrección</strong></td>
583 |   	<td>Reduce el tamaño de la hoja de estilo hasta menos de 50.000 bytes.</td>
584 |   </tr>
585 | </table>
586 | 
587 | El validador de AMP devuelve este error cuando detecta que el tamaño del contenido de estilos dentro de `<style amp-custom>` supera el límite de 50.000 bytes.
588 | 
589 | ### Error de sintaxis CSS
590 | 
591 | <table>
592 |    <tr>
593 |   	<td class="col-thirty"><strong>Código</strong></td>
594 |   	<td>CSS_SYNTAX</td>
595 |   </tr>
596 |    <tr>
597 |   	<td class="col-thirty"><strong>Formato</strong></td>
598 |   	<td>"CSS syntax error in tag '%1' - %2."</td>
599 |   </tr>
600 |    <tr>
601 |   	<td class="col-thirty"><strong>Corrección</strong></td>
602 |   	<td>Corrige el error de sintaxis CSS.</td>
603 |   </tr>
604 | </table>
605 | 
606 | Este error se produce cuando hay errores de sintaxis CSS en la etiqueta especificada.
607 | Si no estás seguro de lo que está provocando el error, intenta ejecutar el CSS a través de un validador de CSS online, como [csslint](http://csslint.net/).
608 | 
609 | ### Error de sintaxis CSS en una regla específica
610 | 
611 | <table>
612 |   <tr>
613 |   	<td class="col-thirty"><strong>Código</strong></td>
614 |   	<td>CSS_SYNTAX_INVALID_AT_RULE</td>
615 |   </tr>
616 |    <tr>
617 |   	<td class="col-thirty"><strong>Formato</strong></td>
618 |   	<td>"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</td>
619 |   </tr>
620 |    <tr>
621 |   	<td class="col-thirty"><strong>Corrección</strong></td>
622 |   	<td>Corrige el error de sintaxis CSS especificado.</td>
623 |   </tr>
624 | </table>
625 | 
626 | Este error se refiere a las reglas de CSS que contienen @, para las que AMP solo permite una serie de reglas
627 | (consulta también la [especificación de AMP](/docs/reference/spec.html)).
628 | Por ejemplo, la regla `@import` no está permitida.
629 | En el error de validación se indica cuál es concretamente la regla no válida para que puedas corregirla más fácilmente.
630 | 
631 | ### La etiqueta de AMP no admite el diseño implícito
632 | 
633 | <table>
634 |   <tr>
635 |   	<td class="col-thirty"><strong>Código</strong></td>
636 |   	<td>IMPLIED_LAYOUT_INVALID</td>
637 |   </tr>
638 |    <tr>
639 |   	<td class="col-thirty"><strong>Formato</strong></td>
640 |   	<td>"The implied layout '%1' is not supported by tag '%2'."</td>
641 |   </tr>
642 |    <tr>
643 |   	<td class="col-thirty"><strong>Corrección</strong></td>
644 |   	<td>Proporciona un atributo de diseño válido para la etiqueta.</td>
645 |   </tr>
646 | </table>
647 | 
648 | Este error se produce cuando no se especifica ningún diseño para la etiqueta de AMP y no se admite el diseño implícito (basado en la anchura, la altura y los tamaños).
649 | Consulta los valores de `supported_layout` para la etiqueta en la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
650 | 
651 | El atributo `layout` es el que determina el comportamiento real del diseño.
652 | Para obtener más información sobre cómo funciona el diseño, consulta [Cómo controlar el diseño](/docs/guides/responsive/control_layout.html) y la [especificación del sistema de diseño AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
653 | 
654 | **Nota:** Si no se especifica el diseño y no se incluyen los valores de `width` y `height`, el valor predeterminado del diseño es CONTAINER. El validador devuelve un error porque ninguna de las etiquetas de AMP admite CONTAINER.
655 | Para que el error desaparezca, especifica un diseño distinto de CONTAINER o añade un valor `width` y/o `height`.
656 | 
657 | ### Atributo no permitido por el diseño implícito
658 | 
659 | <table>
660 |   <tr>
661 |     <td class="col-thirty"><strong>Código</strong></td>
662 |     <td>ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</td>
663 |   </tr>
664 |    <tr>
665 |     <td class="col-thirty"><strong>Formato</strong></td>
666 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
667 |   </tr>
668 |    <tr>
669 |     <td class="col-thirty"><strong>Corrección</strong></td>
670 |     <td>Quita el atributo no permitido de la etiqueta o bien especifica un diseño que lo permita.</td>
671 |   </tr>
672 | </table>
673 | 
674 | Este error se produce cuando no se especifica ningún diseño para la etiqueta de AMP y el diseño implícito contiene un atributo no permitido.
675 | Los atributos no permitidos por los tipos de diseño se describen en la [especificación del sistema de diseño AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
676 | 
677 | ### La etiqueta de AMP no admite el diseño especificado
678 | 
679 | <table>
680 |   <tr>
681 |   	<td class="col-thirty"><strong>Código</strong></td>
682 |   	<td>SPECIFIED_LAYOUT_INVALID</td>
683 |   </tr>
684 |    <tr>
685 |   	<td class="col-thirty"><strong>Formato</strong></td>
686 |   	<td>"The specified layout '%1' is not supported by tag '%2'."</td>
687 |   </tr>
688 |    <tr>
689 |   	<td class="col-thirty"><strong>Corrección</strong></td>
690 |   	<td>Especifica un diseño que la etiqueta admita.</td>
691 |   </tr>
692 | </table>
693 | 
694 | Este error se produce cuando no se admite el diseño especificado para la etiqueta.
695 | Consulta los valores de `supported_layout` para la etiqueta en la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
696 | 
697 | El atributo `layout` es el que determina el comportamiento real del diseño.
698 | Para obtener más información sobre cómo funciona el diseño, consulta [Cómo controlar el diseño](/docs/guides/responsive/control_layout.html) y la [especificación del sistema de diseño AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
699 | 
700 | ### Atributo no permitido por el diseño especificado
701 | 
702 | <table>
703 |   <tr>
704 |     <td class="col-thirty"><strong>Código</strong></td>
705 |     <td>ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</td>
706 |   </tr>
707 |    <tr>
708 |     <td class="col-thirty"><strong>Formato</strong></td>
709 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
710 |   </tr>
711 |    <tr>
712 |     <td class="col-thirty"><strong>Corrección</strong></td>
713 |     <td>Quita el atributo no permitido de la etiqueta o bien especifica un diseño que lo permita.</td>
714 |   </tr>
715 | </table>
716 | 
717 | Este error se produce cuando se especifica un diseño para la etiqueta de AMP y ese diseño contiene un atributo no permitido.
718 | Los atributos no permitidos por los tipos de diseño se describen en la [especificación del sistema de diseño AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
719 | 
720 | ### El atributo requerido por el diseño tiene un valor no válido
721 | 
722 | <table>
723 |   <tr>
724 |   	<td class="col-thirty"><strong>Código</strong></td>
725 |   	<td>ATTR_VALUE_REQUIRED_BY_LAYOUT</td>
726 |   </tr>
727 |    <tr>
728 |   	<td class="col-thirty"><strong>Formato</strong></td>
729 |   	<td>"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</td>
730 |   </tr>
731 |    <tr>
732 |   	<td class="col-thirty"><strong>Corrección</strong></td>
733 |   	<td>Asigna el valor especificado al atributo.</td>
734 |   </tr>
735 | </table>
736 | 
737 | Este error se produce cuando el valor del atributo no es válido para el diseño especificado.
738 | Para entender lo que desencadena este error, es necesario familiarizarse con los [diferentes comportamientos de los diseños](/docs/guides/responsive/control_layout.html#size-and-position-elements).
739 | 
740 | Imaginemos que se establece que el diseño sea `fixed-height` y se incluyen valores numéricos para `height` y para `width`.
741 | El diseño `fixed-height` adquiere un valor `height`.
742 | El atributo `width` no debe estar presente ni tener un valor distinto a `auto`.
743 | El validador devuelve ATTR_VALUE_REQUIRED_BY_LAYOUT.
744 | 
745 | ### Unidades de anchura y altura incompatibles
746 | 
747 | <table>
748 |   <tr>
749 |   	<td class="col-thirty"><strong>Código</strong></td>
750 |   	<td>INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</td>
751 |   </tr>
752 |    <tr>
753 |   	<td class="col-thirty"><strong>Formato</strong></td>
754 |   	<td>"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</td>
755 |   </tr>
756 |    <tr>
757 |   	<td class="col-thirty"><strong>Corrección</strong></td>
758 |   	<td>Proporciona las mismas unidades para la anchura y la altura.</td>
759 |   </tr>
760 | </table>
761 | 
762 | A excepción de `layout=fixed`, los atributos de anchura y altura se tienen que expresar con las mismas unidades.
763 | De no ser así, se produce este error.
764 | 
765 | Por ejemplo, `<amp-img src="" layout="responsive" width="42px" height="42rem">` tiene como resultado el mensaje de error siguiente:
766 | 
767 | "La anchura y la altura de la etiqueta 'amp-img' se expresan con unidades distintas. La anchura se indica en 'px', mientras que la altura se indica en 'rem'."
768 | 
769 | ## Errores en las plantillas
770 | 
771 | Las páginas de AMP no pueden incluir sintaxis de plantillas a menos que dicha sintaxis esté en una etiqueta de AMP específicamente diseñada para incluir plantillas, por ejemplo, [amp-mustache](/docs/reference/extended/amp-mustache.html).
772 | 
773 | Se pueden incluir plantillas en los archivos fuente, siempre que el resultado generado por estos archivos no contenga las plantillas (consulta también [Utilizar preprocesadores de CSS](/docs/guides/responsive/style_pages.html#use-css-preprocessors)).
774 | 
775 | ### El atributo contiene sintaxis de la plantilla
776 | 
777 | <table>
778 |   <tr>
779 |   	<td class="col-thirty"><strong>Código</strong></td>
780 |   	<td>TEMPLATE_IN_ATTR_NAME</td>
781 |   </tr>
782 |    <tr>
783 |   	<td class="col-thirty"><strong>Formato</strong></td>
784 |   	<td>"Mustache template syntax in attribute name '%1' in tag '%2'."</td>
785 |   </tr>
786 |    <tr>
787 |   	<td class="col-thirty"><strong>Corrección</strong></td>
788 |   	<td>Quita la sintaxis de la plantilla Mustache del atributo.</td>
789 |   </tr>
790 | </table>
791 | 
792 | Este error se produce cada vez que el validador detecta [sintaxis de la plantilla Mustache](https://mustache.github.io/mustache.5.html) en un valor de atributo.
793 | 
794 | ### El atributo contiene sintaxis unívoca de plantilla
795 | 
796 | <table>
797 |   <tr>
798 |   	<td class="col-thirty"><strong>Código</strong></td>
799 |   	<td>UNESCAPED_TEMPLATE_IN_ATTR_VALUE</td>
800 |   </tr>
801 |    <tr>
802 |   	<td class="col-thirty"><strong>Formato</strong></td>
803 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</td>
804 |   </tr>
805 |    <tr>
806 |   	<td class="col-thirty"><strong>Corrección</strong></td>
807 |   	<td>Introduce código de escape en la plantilla Mustache.</td>
808 |   </tr>
809 | </table>
810 | 
811 | Este error se produce cada vez que el validador detecta [sintaxis unívoca de la plantilla Mustache](https://mustache.github.io/mustache.5.html) en un valor de atributo.
812 | 
813 | ### El atributo contiene parciales de la plantilla
814 | 
815 | <table>
816 |   <tr>
817 |   	<td class="col-thirty"><strong>Código</strong></td>
818 |   	<td>TEMPLATE_PARTIAL_IN_ATTR_VALUE</td>
819 |   </tr>
820 |    <tr>
821 |   	<td class="col-thirty"><strong>Formato</strong></td>
822 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</td>
823 |   </tr>
824 |    <tr>
825 |   	<td class="col-thirty"><strong>Corrección</strong></td>
826 |   	<td>Quita el parcial de Mustache.</td>
827 |   </tr>
828 | </table>
829 | 
830 | Este error se produce cada vez que el validador detecta un [parcial de Mustache](https://mustache.github.io/mustache.5.html) en un valor de atributo.
831 | 
832 | ## Errores de desactivación
833 | 
834 | ### Etiqueta obsoleta
835 | 
836 | <table>
837 |   <tr>
838 |   	<td class="col-thirty"><strong>Código</strong></td>
839 |   	<td>DEPRECATED_TAG</td>
840 |   </tr>
841 |    <tr>
842 |   	<td class="col-thirty"><strong>Formato</strong></td>
843 |   	<td>No error message defined as yet (no deprecated tags).</td>
844 |   </tr>
845 |    <tr>
846 |   	<td class="col-thirty"><strong>Corrección</strong></td>
847 |   	<td>Quita la etiqueta obsoleta.</td>
848 |   </tr>
849 | </table>
850 | 
851 | Esta advertencia se produce cuando en el documento de AMP se detecta una etiqueta de AMP que antes era válida.
852 | Se trata solamente de una advertencia, ya que los documentos de AMP con advertencias siguen siendo válidos.
853 | Actualmente no existen etiquetas obsoletas; la advertencia se reserva para futuras desactivaciones.
854 | 
855 | ### Atributo obsoleto
856 | 
857 | <table>
858 |   <tr>
859 |   	<td class="col-thirty"><strong>Código</strong></td>
860 |   	<td>DEPRECATED_ATTR</td>
861 |   </tr>
862 |    <tr>
863 |   	<td class="col-thirty"><strong>Formato</strong></td>
864 |   	<td>"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</td>
865 |   </tr>
866 |    <tr>
867 |   	<td class="col-thirty"><strong>Corrección</strong></td>
868 |   	<td>Se recomienda quitar el atributo obsoleto.</td>
869 |   </tr>
870 | </table>
871 | 
872 | Esta advertencia se produce cuando en el documento de AMP se detecta un atributo de AMP que antes era válido.
873 | Se trata solamente de una advertencia, ya que los documentos de AMP con advertencias siguen siendo válidos.
874 | 
875 | Para identificar los atributos obsoletos de cada etiqueta de AMP, busca `deprecation` en la [especificación del validador de AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
876 | 
```

--------------------------------------------------------------------------------
/content/docs/reference/[email protected]:
--------------------------------------------------------------------------------

```markdown
  1 | ---
  2 | $title: AMP-Validierungsfehler
  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 | Gültige AMP-Dokumente dürfen keine Validierungsfehler enthalten.
 22 | Ziel dieses Dokuments ist es, Ihnen ein besseres Verständnis für Validierungsfehler zu vermitteln, die beim [Validieren von AMP-Seiten](/docs/guides/validate.html) auftreten können, und zu erläutern, wie diese behoben werden.
 23 | Eine komplette Übersicht aller Validierungsfehler finden Sie in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
 24 | 
 25 | [TOC]
 26 | 
 27 | ## Fehler bei AMP-HTML-Tags und -Attributen
 28 | 
 29 | ### Erforderliches Tag fehlt
 30 | 
 31 | <table>
 32 |    <tr>
 33 |   	<td class="col-thirty"><strong>Code</strong></td>
 34 |   	<td>MANDATORY_TAG_MISSING</td>
 35 |   </tr>
 36 |    <tr>
 37 |   	<td class="col-thirty"><strong>Format</strong></td>
 38 |   	<td>"The mandatory tag '%1' is missing or incorrect."</td>
 39 |   </tr>
 40 |    <tr>
 41 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
 42 |   	<td>Erforderliches HTML-Tag hinzufügen oder korrigieren</td>
 43 |   </tr>
 44 | </table>
 45 | 
 46 | Die folgenden Tags müssen in allen AMP-Dokumenten vorhanden sein:
 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 | Diese erforderlichen Tags enthalten das Feld `mandatory: true` in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii). Auf sie wird auch in der [AMP-Spezifikation](/docs/reference/spec.html) verwiesen.
 59 | 
 60 | ### Für ein anderes Tag erforderliches Tag fehlt
 61 | 
 62 | <table>
 63 |    <tr>
 64 |   	<td class="col-thirty"><strong>Code</strong></td>
 65 |   	<td>TAG_REQUIRED_BY_MISSING</td>
 66 |   </tr>
 67 |    <tr>
 68 |   	<td class="col-thirty"><strong>Format</strong></td>
 69 |   	<td>"The '%1' tag is missing or incorrect, but required by '%2'."</td>
 70 |   </tr>
 71 |    <tr>
 72 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
 73 |   	<td>Entsprechendes HTML-Tag hinzufügen oder korrigieren</td>
 74 |   </tr>
 75 | </table>
 76 | 
 77 | Das Validierungstool gibt den Fehler `TAG_REQUIRED_BY_MISSING` zurück, wenn eine 
 78 | erweiterte Komponente im AMP-Dokument ermittelt, das entsprechende `<script>` jedoch nicht gefunden wird.
 79 | 
 80 | [Erweiterte Komponenten](/docs/reference/extended.html) müssen explizit als benutzerdefinierte Elemente in das AMP-Dokument aufgenommen werden.
 81 | Um diese Fehler zu beheben, rufen Sie die Referenzseite der erweiterten Komponente auf, kopieren Sie das erforderliche Skript und fügen es im `<head>` des AMP-Dokuments ein.
 82 | 
 83 | ### Unzulässiges Tag
 84 | 
 85 | <table>
 86 |    <tr>
 87 |   	<td class="col-thirty"><strong>Code</strong></td>
 88 |   	<td>DISALLOWED_TAG</td>
 89 |   </tr>
 90 |    <tr>
 91 |   	<td class="col-thirty"><strong>Format</strong></td>
 92 |   	<td>"The tag '%1' is disallowed."</td>
 93 |   </tr>
 94 |    <tr>
 95 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
 96 |   	<td>Unzulässiges Tag entfernen</td>
 97 |   </tr>
 98 | </table>
 99 | 
100 | Da Tags auf die weiße Liste gesetzt werden, gibt es keine definitive Auflistung unzulässiger Tags. In der [AMP-Spezifikation](/docs/reference/spec.html) werden unzulässige Tags jedoch allgemein definiert.
101 | 
102 | ### Erforderliches Attribut fehlt
103 | 
104 | <table>
105 |    <tr>
106 |   	<td class="col-thirty"><strong>Code</strong></td>
107 |   	<td>MANDATORY_ATTR_MISSING</td>
108 |   </tr>
109 |    <tr>
110 |   	<td class="col-thirty"><strong>Format</strong></td>
111 |   	<td>"The mandatory attribute '%1' is missing in tag '%2'."</td>
112 |   </tr>
113 |    <tr>
114 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
115 |   	<td>Erforderliches Attribut in Tag einfügen</td>
116 |   </tr>
117 | </table>
118 | 
119 | Die erforderlichen Attribute für AMP-Tags werden in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) definiert.
120 | Suchen Sie einfach nach dem Tag, sehen Sie sich die aufgeführten Attribute an und achten Sie auf `mandatory: true`.
121 | Die erforderlichen Attribute der einzelnen AMP-Tags finden Sie außerdem in der Spezifikation des entsprechenden Tags.
122 | 
123 | ### Ungültiger Attributwert
124 | 
125 | <table>
126 |    <tr>
127 |   	<td class="col-thirty"><strong>Code</strong></td>
128 |   	<td>INVALID_ATTR_VALUE</td>
129 |   </tr>
130 |    <tr>
131 |   	<td class="col-thirty"><strong>Format</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>Korrektur</strong></td>
136 |   	<td>Gültigen Attributwert eingeben</td>
137 |   </tr>
138 | </table>
139 | 
140 | Dieser Fehler bedeutet, dass ein HTML-Tag über ein Attribut mit einem zulässigen Namen, aber unzulässigen Wert verfügt.
141 | Häufige Auslöser dieses Fehlers sind beispielsweise ungültige Werte für URLs. Sämtliche URL-Werte (in `href`- und `src`-Attributen) müssen einem [dieser möglichen Attributwerte](http://www.w3schools.com/tags/att_a_href.asp) entsprechen.
142 | 
143 | <strong>WICHTIG:</strong> Für viele URL-Werte in AMP ist HTTPS erforderlich. Wenn unklar ist, warum dieser Fehler zurückgegeben wird, sehen Sie in der Spezifikation des entsprechenden AMP-Tags nach, ob HTTPS für das Attribut erforderlich ist.
144 | 
145 | ### Unzulässiges Attribut
146 | 
147 | <table>
148 |   <tr>
149 |   	<td class="col-thirty"><strong>Code</strong></td>
150 |   	<td>DISALLOWED_ATTR</td>
151 |   </tr>
152 |   <tr>
153 |   	<td class="col-thirty"><strong>Format</strong></td>
154 |   	<td>"The attribute '%1' may not appear in tag '%2'."</td>
155 |   </tr>
156 |   <tr>
157 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
158 |   	<td>Attribut aus dem HTML-Tag entfernen</td>
159 |   </tr>
160 | </table>
161 | 
162 | Da Attribute auf die weiße Liste gesetzt werden, gibt es keine definitive Auflistung unzulässiger Attribute.
163 | Die unterstützten Attribute für die einzelnen Tags finden Sie in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii). Suchen Sie dazu nach "HTML tag" und dann `attrs`.
164 | 
165 | Zusätzlich zur weißen Liste spezifischer Attribute für das betreffende Tag können für AMP-Tags auch alle Attribute verwendet werden, die unter `$GLOBAL_ATTRS` auf die weiße Liste gesetzt wurden. Sämtliche Attribute mit dem Präfix `"data-"` befinden sich ebenfalls auf der weißen Liste.
166 | 
167 | ### Erforderlicher Text fehlt oder ist falsch
168 | 
169 | <table>
170 |   <tr>
171 |   	<td class="col-thirty"><strong>Code</strong></td>
172 |   	<td>MANDATORY_CDATA_MISSING_OR_INCORRECT</td>
173 |   </tr>
174 |    <tr>
175 |   	<td class="col-thirty"><strong>Format</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>Korrektur</strong></td>
180 |   	<td>Erforderlichen Text in Tag einfügen oder korrigieren</td>
181 |   </tr>
182 | </table>
183 | 
184 | CDATA-Werte sind die Contentdaten zwischen einem HTML-Start- und -End-Tag. Sie werden derzeit sowohl mit schwarzen als auch weißen Listen ausgewertet.
185 | Tags mit erforderlichen CDATA-Werten sind:
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 | und
192 | 
193 | [sourcecode:html]
194 | <style amp-custom>
195 | [/sourcecode]
196 | 
197 | Dafür werden unter Umständen die folgenden detaillierten Benachrichtigungen angezeigt:
198 | 
199 | * "Mandatory style boilerplate (js enabled)"
200 | * "Mandatory style boilerplate (noscript)"
201 | * "Disallowed -amp- CSS class name prefix"
202 | * "Disallowed !important attribute in CSS"
203 | * "Disallowed @charset in CSS"
204 | * "Disallowed @import in CSS"
205 | * "Disallowed @namespace in CSS"
206 | * "Disallowed @supports in CSS"
207 | * "Disallowed @document in CSS"
208 | * "Disallowed @page in CSS"
209 | * "Disallowed @viewport in CSS"
210 | 
211 | ### Unzulässiger Text in Tag
212 | 
213 | <table>
214 |    <tr>
215 |   	<td class="col-thirty"><strong>Code</strong></td>
216 |   	<td>CDATA_VIOLATES_BLACKLIST</td>
217 |   </tr>
218 |    <tr>
219 |   	<td class="col-thirty"><strong>Format</strong></td>
220 |   	<td>"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</td>
221 |   </tr>
222 |    <tr>
223 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
224 |   	<td>Unzulässigen Text entfernen</td>
225 |   </tr>
226 | </table>
227 | 
228 | Bestimmte CSS-Daten wurden für die Validierung wichtiger CSS-AMP-Regeln auf die schwarze Liste gesetzt.
229 | 
230 | Nachstehend sind die CSS-Daten aufgelistet, die auf die schwarze Liste gesetzt wurden (weitere Informationen finden Sie in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) unter `blacklisted_cdata_regex`):
231 | 
232 | * `"\\.i?-amp-"` ("CSS -amp- class name prefix")
233 | * `"!important"`
234 | * `"charset"`
235 | * `"@import"`
236 | * `"@namespace"`
237 | * `"@document"`
238 | * `"@page"`
239 | * `"@viewport"`
240 | 
241 | ### Unzulässige Property in einem Attribut im Tag
242 | 
243 | <table>
244 |    <tr>
245 |   	<td class="col-thirty"><strong>Code</strong></td>
246 |   	<td>DISALLOWED_PROPERTY_IN_ATTR_VALUE</td>
247 |   </tr>
248 |    <tr>
249 |   	<td class="col-thirty"><strong>Format</strong></td>
250 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is disallowed."</td>
251 |   </tr>
252 |    <tr>
253 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
254 |   	<td>Unzulässige Property aus dem entsprechenden Attribut entfernen</td>
255 |   </tr>
256 | </table>
257 | 
258 | Dieser Fehler wird zurückgegeben, wenn der Property-Name in einem Attribut nicht zulässig ist.
259 | In diesem Kontext handelt es sich bei "Property" um die strukturierten Schlüssel-/Wertdaten in einem Attribut.
260 | In `<meta name="viewport content="width=device-width;minimum-scale=1">` sind `width` und `minimum-scale` beispielsweise Property-Namen.
261 | 
262 | Für das folgende Beispiel wird der Fehler DISALLOWED_PROPERTY_IN_ATTR_VALUE zurückgegeben:
263 | 
264 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
265 | 
266 | Auch dieses Beispiel würde einen Fehler auslösen:
267 | 
268 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
269 | 
270 | Richtig ist `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
271 | 
272 | ### Ungültiger Property-Wert
273 | 
274 | <table>
275 |    <tr>
276 |   	<td class="col-thirty"><strong>Code</strong></td>
277 |   	<td>INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</td>
278 |   </tr>
279 |    <tr>
280 |   	<td class="col-thirty"><strong>Format</strong></td>
281 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</td>
282 |   </tr>
283 |    <tr>
284 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
285 |   	<td>Ungültigen Property-Wert korrigieren</td>
286 |   </tr>
287 | </table>
288 | 
289 | Dieser Fehler tritt auf, wenn der Property-Wert in einem Attribut ungültig ist.
290 | In diesem Kontext handelt es sich bei "Property" um die strukturierten Schlüssel-/Wertdaten in einem Attribut.
291 | In `<meta name="viewport content="width=device-width;minimum-scale=1">` sind `device-width` und `1` beispielsweise Property-Werte.
292 | 
293 | Für das folgende Beispiel wird der Fehler INVALID_PROPERTY_VALUE_IN_ATTR_VALUE zurückgegeben:
294 | 
295 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
296 | 
297 | Auch dieses Beispiel würde einen Fehler auslösen:
298 | 
299 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
300 | 
301 | Richtig ist: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
302 | 
303 | ### URL fehlt
304 | 
305 | <table>
306 |   <tr>
307 |     <td class="col-thirty"><strong>Code</strong></td>
308 |     <td>MISSING_URL</td>
309 |   </tr>
310 |    <tr>
311 |     <td class="col-thirty"><strong>Format</strong></td>
312 |     <td>"Missing URL for attribute '%1' in tag '%2'."</td>
313 |   </tr>
314 |    <tr>
315 |     <td class="col-thirty"><strong>Korrektur</strong></td>
316 |     <td>Gültige URL hinzufügen</td>
317 |   </tr>
318 | </table>
319 | 
320 | Dieser Fehler tritt auf, wenn eine URL für das Attribut erforderlich ist, aber nicht angegeben wurde, etwa ein leeres `href`- oder `src`-Attribut.
321 | 
322 | ### Ungültige URL
323 | 
324 | <table>
325 |   <tr>
326 |     <td class="col-thirty"><strong>Code</strong></td>
327 |     <td>INVALID_URL_PROTOCOL</td>
328 |   </tr>
329 |    <tr>
330 |     <td class="col-thirty"><strong>Format</strong></td>
331 |     <td>"Malformed URL '%3' for attribute '%1' in tag '%2'"</td>
332 |   </tr>
333 |    <tr>
334 |     <td class="col-thirty"><strong>Korrektur</strong></td>
335 |     <td>Fehlerhafte URL korrigieren</td>
336 |   </tr>
337 | </table>
338 | 
339 | Dieser Fehler tritt auf, wenn ein Attribut eine ungültige URL enthält.
340 | 
341 | ### Ungültiges URL-Protokoll
342 | 
343 | <table>
344 |   <tr>
345 |     <td class="col-thirty"><strong>Code</strong></td>
346 |     <td>INVALID_URL_PROTOCOL</td>
347 |   </tr>
348 |    <tr>
349 |     <td class="col-thirty"><strong>Format</strong></td>
350 |     <td>Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</td>
351 |   </tr>
352 |    <tr>
353 |     <td class="col-thirty"><strong>Korrektur</strong></td>
354 |     <td>In ein gültiges Protokoll ändern, etwa `https` anstelle von `http`</td>
355 |   </tr>
356 | </table>
357 | 
358 | Dieser Fehler tritt bei Tags mit `href`- oder `src`-Attributen auf, für die ein bestimmtes Protokoll festgelegt sein muss.
359 | Für viele Tags ist beispielsweise `https` erforderlich.
360 | 
361 | ### Erforderliche Property nicht in Attribut vorhanden
362 | 
363 | <table>
364 |   <tr>
365 |   	<td class="col-thirty"><strong>Code</strong></td>
366 |   	<td>MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</td>
367 |   </tr>
368 |    <tr>
369 |   	<td class="col-thirty"><strong>Format</strong></td>
370 |   	<td>"The property '%1' is missing from attribute '%2' in tag '%3'."</td>
371 |   </tr>
372 |    <tr>
373 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
374 |   	<td>Fehlende Property hinzufügen</td>
375 |   </tr>
376 | </table>
377 | 
378 | Derzeit tritt dieser Fehler auf, wenn die folgenden erforderlichen Properties fehlen:
379 | 
380 | * `content="...ie=..."`
381 | * `content="...width=..."`
382 | * `content="...minimum-scale=..."`
383 | 
384 | Sie verweisen auf die erwarteten Tags:
385 | 
386 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
387 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
388 | 
389 | ### Sich gegenseitig ausschließende Attribute
390 | 
391 | <table>
392 |   <tr>
393 |   	<td class="col-thirty"><strong>Code</strong></td>
394 |   	<td>MUTUALLY_EXCLUSIVE_ATTRS</td>
395 |   </tr>
396 |    <tr>
397 |   	<td class="col-thirty"><strong>Format</strong></td>
398 |   	<td>"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</td>
399 |   </tr>
400 |    <tr>
401 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
402 |   	<td>Eins der sich gegenseitig ausschließenden Attribute entfernen</td>
403 |   </tr>
404 | </table>
405 | 
406 | Dieser Fehler tritt auf, wenn beide sich gegenseitig ausschließende Attribute in einem Tag enthalten sind.
407 | Beispielsweise ist in den folgenden Tags nur jeweils eines der Attribute zulässig:
408 | 
409 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` oder `src`
410 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` oder `src`
411 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` oder `srcdoc`
412 | * [amp-youtube](/docs/reference/extended/amp-youtube.html ): `src` oder `data-videoid`
413 | 
414 | ### Erforderliches Attribut fehlt auf Liste
415 | 
416 | <table>
417 |   <tr>
418 |   	<td class="col-thirty"><strong>Code</strong></td>
419 |   	<td>MANDATORY_ONEOF_ATTR_MISSING</td>
420 |   </tr>
421 |    <tr>
422 |   	<td class="col-thirty"><strong>Format</strong></td>
423 |   	<td>"The tag '%1' is missing a mandatory attribute - pick one of %2." </td>
424 |   </tr>
425 |    <tr>
426 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
427 |   	<td>Erforderliches Attribut aus den verfügbaren Attributen auswählen und einfügen</td>
428 |   </tr>
429 | </table>
430 | 
431 | Dieser Fehler tritt auf, wenn ein erforderliches Attribut aus mehreren Möglichkeiten in einem Tag fehlt.
432 | Beispielsweise ist für die folgenden Tags jeweils eines der beiden anschließend genannten Attribute erforderlich:
433 | 
434 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` oder `src`
435 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` oder `src`
436 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` oder `srcdoc`
437 | * [amp-youtube](/docs/reference/extended/amp-youtube.html ): `src` oder `data-videoid`
438 | 
439 | ### Falsches übergeordnetes Tag
440 | 
441 | <table>
442 |   <tr>
443 |   	<td class="col-thirty"><strong>Code</strong></td>
444 |   	<td>WRONG_PARENT_TAG</td>
445 |   </tr>
446 |    <tr>
447 |   	<td class="col-thirty"><strong>Format</strong></td>
448 |   	<td>"The parent tag of tag '%1' is '%2', but it can only be '%3'."</td>
449 |   </tr>
450 |    <tr>
451 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
452 |   	<td>Tag dem erforderlichen übergeordneten Tag direkt unterordnen</td>
453 |   </tr>
454 | </table>
455 | 
456 | Für manche Tags sind direkt übergeordnete Tags erforderlich.
457 | Nachstehend sehen Sie die erforderlichen übergeordneten Tags für bestimmte Tags (Tag, übergeordnetes Tag):
458 | 
459 | * Für `!doctype` ist das übergeordnete Tag `root` erforderlich.
460 | * Für `html` ist das übergeordnete Tag `!doctype` erforderlich.
461 | * Für `head` ist das übergeordnete Tag `html` erforderlich.
462 | * Für `body` ist das übergeordnete Tag `html` erforderlich.
463 | * Für `link` ist das übergeordnete Tag `head` erforderlich.
464 | * Für `meta` ist das übergeordnete Tag `head` erforderlich.
465 | * Für `style amp-custom` ist das übergeordnete Tag `head` erforderlich.
466 | * Für `style` ist das übergeordnete Tag `boilerplate (noscript)` erforderlich.
467 | * Für `noscript` ist das übergeordnete Tag `head` erforderlich.
468 | * Für `script` ist das übergeordnete Tag `head` erforderlich.
469 | * Für `source` ist ein Medien-Tag erforderlich, etwa `amp-audio` oder `amp-video`.
470 | 
471 | ### Unzulässiges Vorgängertag
472 | 
473 | <table>
474 |   <tr>
475 |   	<td class="col-thirty"><strong>Code</strong></td>
476 |   	<td>DISALLOWED_TAG_ANCESTOR</td>
477 |   </tr>
478 |    <tr>
479 |   	<td class="col-thirty"><strong>Format</strong></td>
480 |   	<td>"The tag '%1' may not appear as a descendant of tag '%2'."</td>
481 |   </tr>
482 |    <tr>
483 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
484 |   	<td>Unzulässiges verschachteltes Tag entfernen oder verschieben</td>
485 |   </tr>
486 | </table>
487 | 
488 | Dieser Fehler tritt auf, wenn ein Tag ein Nachfolger eines anderen Tags ist, das nicht validiert werden kann.
489 | Derzeit wären hier als einziges Beispiel `template`-Tags zu nennen, die anderen `template`-Tags nicht untergeordnet werden dürfen.
490 | 
491 | ### Erforderliches Vorgängertag
492 | 
493 | <table>
494 |   <tr>
495 |   	<td class="col-thirty"><strong>Code</strong></td>
496 |   	<td>MANDATORY_TAG_ANCESTOR</td>
497 |   </tr>
498 |    <tr>
499 |   	<td class="col-thirty"><strong>Format</strong></td>
500 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'."</td>
501 |   </tr>
502 |    <tr>
503 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
504 |   	<td>Tag entfernen oder zum Nachfolger des entsprechenden Tags machen</td>
505 |   </tr>
506 | </table>
507 | 
508 | Erforderliche Nachfolger werden in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) als `mandatory_ancestor` definiert.
509 | 
510 | Dieser Fehler tritt auf, wenn bei den folgenden Tags der `mandatory_ancestor` fehlt (Tag, Vorgängertag):
511 | 
512 | * `img` muss ein Nachfolger von `noscript` sein.
513 | * `video` muss ein Nachfolger von `noscript` sein.
514 | * `audio` muss ein Nachfolger von `noscript` sein.
515 | * `noscript` muss ein Nachfolger von `body` sein.
516 | 
517 | ### Erforderliches Vorgängertag mit hint-Tag
518 | 
519 | <table>
520 |   <tr>
521 |   	<td class="col-thirty"><strong>Code</strong></td>
522 |   	<td>MANDATORY_TAG_ANCESTOR_WITH_HINT</td>
523 |   </tr>
524 |    <tr>
525 |   	<td class="col-thirty"><strong>Format</strong></td>
526 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</td>
527 |   </tr>
528 |    <tr>
529 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
530 |   	<td>Tag entfernen, zum Nachfolger des entsprechenden Tags machen oder durch das hint-Tag ersetzen</td>
531 |   </tr>
532 | </table>
533 | 
534 | Dieser Fehler tritt auf, wenn eines der folgenden Tags im AMP-Dokument ermittelt wird, aber dem erforderlichen übergeordneten Tag nicht richtig untergeordnet wurde:
535 | 
536 | * `img` wurde dem übergeordneten Tag `noscript` nicht untergeordnet.
537 | * `video` wurde dem übergeordneten Tag `noscript` nicht untergeordnet.
538 | * `audio` wurde dem übergeordneten Tag `noscript` nicht untergeordnet.
539 | * `noscript` wurde dem übergeordneten Tag `body` nicht untergeordnet.
540 | 
541 | ### Doppeltes eindeutiges Tag
542 | 
543 | <table>
544 |   <tr>
545 |   	<td class="col-thirty"><strong>Code</strong></td>
546 |   	<td>DUPLICATE_UNIQUE_TAG</td>
547 |   </tr>
548 |    <tr>
549 |   	<td class="col-thirty"><strong>Format</strong></td>
550 |   	<td>"The tag '%1' appears more than once in the document."</td>
551 |   </tr>
552 |    <tr>
553 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
554 |   	<td>Eines der doppelten Tags aus dem AMP-Dokument entfernen</td>
555 |   </tr>
556 | </table>
557 | 
558 | Dieser Fehler tritt auf, wenn genau eine Instanz des Tags zulässig ist, aber ein Duplikat ermittelt wurde.
559 | 
560 | Vollständige Liste der eindeutigen Tags:
561 | 
562 | * `<doctype html>`
563 | * `<html amp>`
564 | * `<head>`
565 | * `<link rel=canonical href=...>`
566 | * `<link rel=amphtml href=...>`
567 | * `<meta charset="utf-8">`
568 | * `<meta viewport>`
569 | * `<style amp-custom>`
570 | * `<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>`
571 | * `<body>`
572 | * `<script src="https://cdn.ampproject.org/v0.js">`
573 | 
574 | ## Stil- und Layoutfehler
575 | 
576 | Bevor wir uns mit Stil- und Layoutfehlern befassen, sollten Sie wissen, wie [Stile](/docs/guides/responsive/style_pages.html) und [Layout](/docs/guides/responsive/control_layout.html ) in AMP funktionieren. Da es sich bei AMP-Seiten um HTML-Seiten handelt, sind die Stile praktisch dieselben wie bei anderen HTML-Seiten.
577 | Allerdings gibt es einige Einschränkungen, die sicher stellen sollen, dass Seiten schnell laden. Das AMP-Validierungstool setzt diese Einschränkungen durch.
578 | 
579 | Für das Layout von AMP-Seiten gibt es feste Regeln.
580 | Für alle Tags, die auf der Seite angezeigt werden, sind eine vordefinierte Höhe und Breite erforderlich. Dadurch werden Verzögerungen und Störungen beim Rendern und Scrollen deutlich reduziert.
581 | Das bedeutet jedoch nicht, dass Sie diese Attribute manuell einfügen müssen.
582 | Bei bestimmten Layouttypen gibt das AMP-Validierungstool keine Fehler zurück, da von Standardwerten ausgegangen wird.
583 | 
584 | Für jedes AMP-Tag gibt es eine Liste mit `supported_layouts`, die in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) definiert sind.
585 | Das Validierungstool gibt Fehler für nicht unterstützte Layouts zurück und prüft die Validierungsregeln für das vordefinierte Layout.
586 | 
587 | ### Stylesheet zu lang
588 | 
589 | <table>
590 |   <tr>
591 |   	<td class="col-thirty"><strong>Code</strong></td>
592 |   	<td>STYLESHEET_TOO_LONG</td>
593 |   </tr>
594 |    <tr>
595 |   	<td class="col-thirty"><strong>Format</strong></td>
596 |   	<td>"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</td>
597 |   </tr>
598 |    <tr>
599 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
600 |   	<td>Größe des Stylesheets auf unter 50.000 Byte reduzieren.</td>
601 |   </tr>
602 | </table>
603 | 
604 | Das AMP-Validierungstool gibt diesen Fehler zurück, wenn es feststellt, dass die Größe des Stilinhalts in `<style amp-custom>` 50.000 Byte überschreitet.
605 | 
606 | ### CSS-Syntaxfehler
607 | 
608 | <table>
609 |    <tr>
610 |   	<td class="col-thirty"><strong>Code</strong></td>
611 |   	<td>CSS_SYNTAX</td>
612 |   </tr>
613 |    <tr>
614 |   	<td class="col-thirty"><strong>Format</strong></td>
615 |   	<td>"CSS syntax error in tag '%1' - %2."</td>
616 |   </tr>
617 |    <tr>
618 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
619 |   	<td>CSS-Syntaxfehler beheben</td>
620 |   </tr>
621 | </table>
622 | 
623 | Dieser Fehler tritt auf, wenn das entsprechende Tag CSS-Syntaxfehler aufweist.
624 | Wenn Sie nicht wissen, warum der Fehler auftritt, prüfen Sie das CSS mit einem Onlinetool für die CSS-Validierung wie [csslint](http://csslint.net/).
625 | 
626 | ### CSS-Syntaxfehler bei bestimmter Regel
627 | 
628 | <table>
629 |   <tr>
630 |   	<td class="col-thirty"><strong>Code</strong></td>
631 |   	<td>CSS_SYNTAX_INVALID_AT_RULE</td>
632 |   </tr>
633 |    <tr>
634 |   	<td class="col-thirty"><strong>Format</strong></td>
635 |   	<td>"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</td>
636 |   </tr>
637 |    <tr>
638 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
639 |   	<td>CSS-Syntaxfehler beheben</td>
640 |   </tr>
641 | </table>
642 | 
643 | Dieser Fehler bezieht sich auf die @-Regeln in CSS, für die AMP nur einige wenige Regeln zulässt.
644 | Weitere Informationen finden Sie in der [AMP-Spezifikation](/docs/reference/spec.html).
645 | Beispielsweise ist `@import` nicht zulässig.
646 | Dem Validierungsfehler können Sie entnehmen, welche Regel ungültig ist. So können Sie diese leichter korrigieren.
647 | 
648 | ### Impliziertes Layout nicht vom AMP-Tag unterstützt
649 | 
650 | <table>
651 |   <tr>
652 |   	<td class="col-thirty"><strong>Code</strong></td>
653 |   	<td>IMPLIED_LAYOUT_INVALID</td>
654 |   </tr>
655 |    <tr>
656 |   	<td class="col-thirty"><strong>Format</strong></td>
657 |   	<td>"The implied layout '%1' is not supported by tag '%2'."</td>
658 |   </tr>
659 |    <tr>
660 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
661 |   	<td>Gültiges Layoutattribut für das Tag angeben</td>
662 |   </tr>
663 | </table>
664 | 
665 | Dieser Fehler tritt auf, wenn Sie kein Layout für das AMP-Tag angeben und das implizierte Layout (hinsichtlich Breite, Höhe und Größen) nicht unterstützt wird.
666 | Überprüfen Sie die `supported_layout`-Werte für das Tag in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
667 | 
668 | Das tatsächliche Layoutverhalten richtet sich nach dem Attribut `layout`.
669 | Weitere Informationen zur Funktionsweise von Layouts finden Sie [im Artikel zu den unterstützten Layouts](/docs/guides/responsive/control_layout.html ) und in der [Spezifikation des AMP-HTML-Layoutsystems](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
670 | 
671 | **Hinweis:** Wenn Sie kein Layout und keine Werte für `width` und `height` festlegen, wird standardmäßig CONTAINER als Layout verwendet. Das Validierungstool gibt in diesem Fall einen Fehler zurück, da CONTAINER nicht in AMP-Tags zulässig ist.
672 | Geben Sie ein anderes Layout als CONTAINER an oder fügen Sie einen Wert für `width` und/oder `height` hinzu, um den Fehler zu beheben.
673 | 
674 | ### Attribute nicht für impliziertes Layout zulässig
675 | 
676 | <table>
677 |   <tr>
678 |     <td class="col-thirty"><strong>Code</strong></td>
679 |     <td>ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</td>
680 |   </tr>
681 |    <tr>
682 |     <td class="col-thirty"><strong>Format</strong></td>
683 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
684 |   </tr>
685 |    <tr>
686 |     <td class="col-thirty"><strong>Korrektur</strong></td>
687 |     <td>Unzulässiges Attribut aus dem Tag entfernen oder ein Layout auswählen, das dieses Attribut unterstützt</td>
688 |   </tr>
689 | </table>
690 | 
691 | Dieser Fehler tritt auf, wenn Sie kein Layout für das AMP-Tag angeben und das implizierte Layout ein unzulässiges Attribut enthält.
692 | Die unzulässigen Attribute für Layouttypen werden in der [Spezifikation des AMP-HTML-Layoutsystems](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md) beschrieben.
693 | 
694 | ### Festgelegtes Layout nicht vom AMP-Tag unterstützt
695 | 
696 | <table>
697 |   <tr>
698 |   	<td class="col-thirty"><strong>Code</strong></td>
699 |   	<td>SPECIFIED_LAYOUT_INVALID</td>
700 |   </tr>
701 |    <tr>
702 |   	<td class="col-thirty"><strong>Format</strong></td>
703 |   	<td>"The specified layout '%1' is not supported by tag '%2'."</td>
704 |   </tr>
705 |    <tr>
706 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
707 |   	<td>Layout festlegen, das vom Tag unterstützt wird</td>
708 |   </tr>
709 | </table>
710 | 
711 | Dieser Fehler tritt auf, wenn das Layout, das für das Tag festgelegt wurde, nicht unterstützt wird.
712 | Überprüfen Sie die `supported_layout`-Werte für das Tag in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
713 | 
714 | Das tatsächliche Layoutverhalten richtet sich nach dem Attribut `layout`.
715 | Weitere Informationen zur Funktionsweise von Layouts finden Sie [im Artikel zu den unterstützten Layouts](/docs/guides/responsive/control_layout.html ) und in der [Spezifikation des AMP-HTML-Layoutsystems](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
716 | 
717 | ### Attribute nicht für festgelegtes Layout zulässig
718 | 
719 | <table>
720 |   <tr>
721 |     <td class="col-thirty"><strong>Code</strong></td>
722 |     <td>ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</td>
723 |   </tr>
724 |    <tr>
725 |     <td class="col-thirty"><strong>Format</strong></td>
726 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
727 |   </tr>
728 |    <tr>
729 |     <td class="col-thirty"><strong>Korrektur</strong></td>
730 |     <td>Unzulässiges Attribut aus dem Tag entfernen oder ein Layout auswählen, das dieses Attribut unterstützt</td>
731 |   </tr>
732 | </table>
733 | 
734 | Dieser Fehler tritt auf, wenn Sie ein Layout für das AMP-Tag festlegen und das Layout ein unzulässiges Attribut enthält.
735 | Die unzulässigen Attribute für Layouttypen werden in der [Spezifikation des AMP-HTML-Layoutsystems](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md) beschrieben.
736 | 
737 | ### Ungültiger Wert eines für das Layout erforderlichen Attributs
738 | 
739 | <table>
740 |   <tr>
741 |   	<td class="col-thirty"><strong>Code</strong></td>
742 |   	<td>ATTR_VALUE_REQUIRED_BY_LAYOUT</td>
743 |   </tr>
744 |    <tr>
745 |   	<td class="col-thirty"><strong>Format</strong></td>
746 |   	<td>"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</td>
747 |   </tr>
748 |    <tr>
749 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
750 |   	<td>Attribut auf den festgelegten Wert setzen</td>
751 |   </tr>
752 | </table>
753 | 
754 | Dieser Fehler tritt auf, wenn der Attributwert nicht für das festgelegte Layout gültig ist.
755 | Um zu verstehen, wodurch dieser Fehler ausgelöst wird, müssen Sie sich mit dem [unterschiedlichen Verhalten von Layouts](/docs/guides/responsive/control_layout.html#size-and-position-elements) vertraut machen.
756 | 
757 | Angenommen, Sie legen `fixed-height` für das Layout fest und geben numerische Werte für `height` und `width` an.
758 | Für das Layout `fixed-height` wird ein `height`-Wert übernommen.
759 | Das Attribut `width` darf nicht vorhanden sein oder muss auf `auto` gesetzt werden.
760 | Das Validierungstool gibt den Fehler ATTR_VALUE_REQUIRED_BY_LAYOUT zurück.
761 | 
762 | ### Abweichende Einheiten für Breite und Höhe
763 | 
764 | <table>
765 |   <tr>
766 |   	<td class="col-thirty"><strong>Code</strong></td>
767 |   	<td>INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</td>
768 |   </tr>
769 |    <tr>
770 |   	<td class="col-thirty"><strong>Format</strong></td>
771 |   	<td>"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</td>
772 |   </tr>
773 |    <tr>
774 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
775 |   	<td>Einheitliche Einheiten für Breite und Höhe angeben</td>
776 |   </tr>
777 | </table>
778 | 
779 | Mit Ausnahme von `layout=fixed` müssen Attribute für Breite und Höhe in derselben Einheit angegeben werden.
780 | Anderenfalls wird dieser Fehler zurückgegeben.
781 | 
782 | Beispielsweise wird für `<amp-img src="" layout="responsive" width="42px" height="42rem">` die folgende Fehlermeldung zurückgegeben:
783 | 
784 | "Im Tag 'amp-img' wurden abweichende Einheiten für Breite und Höhe festgestellt. Die Breite ist in 'px' angegeben, während für Höhe 'rem' verwendet wurde."
785 | 
786 | ## Vorlagenfehler
787 | 
788 | AMP-Seiten dürfen Vorlagensyntax nur in AMP-Tags enthalten, die spezifisch für Vorlagen ausgelegt sind, etwa [amp-mustache](/docs/reference/extended/amp-mustache.html).
789 | 
790 | Sie können Vorlagen in Ihre Quelldateien einfügen, solange die generierte Ausgabe keine Vorlagen mehr enthält. Weitere Informationen finden Sie unter [CSS-Präprozessoren verwenden](/docs/guides/responsive/style_pages.html#use-css-preprocessors).
791 | 
792 | ### Attribut enthält Vorlagensyntax
793 | 
794 | <table>
795 |   <tr>
796 |   	<td class="col-thirty"><strong>Code</strong></td>
797 |   	<td>TEMPLATE_IN_ATTR_NAME</td>
798 |   </tr>
799 |    <tr>
800 |   	<td class="col-thirty"><strong>Format</strong></td>
801 |   	<td>"Mustache template syntax in attribute name '%1' in tag '%2'."</td>
802 |   </tr>
803 |    <tr>
804 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
805 |   	<td>Mustache-Vorlagensyntax aus dem Attribut entfernen</td>
806 |   </tr>
807 | </table>
808 | 
809 | Dieser Fehler tritt immer dann auf, wenn das Validierungstool [Mustache-Vorlagensyntax](https://mustache.github.io/mustache.5.html) in einem Attributwert ermittelt.
810 | 
811 | ### Attribut enthält nicht korrekt codierte Vorlagensyntax
812 | 
813 | <table>
814 |   <tr>
815 |   	<td class="col-thirty"><strong>Code</strong></td>
816 |   	<td>UNESCAPED_TEMPLATE_IN_ATTR_VALUE</td>
817 |   </tr>
818 |    <tr>
819 |   	<td class="col-thirty"><strong>Format</strong></td>
820 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</td>
821 |   </tr>
822 |    <tr>
823 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
824 |   	<td>Mustache-Vorlage richtig codieren</td>
825 |   </tr>
826 | </table>
827 | 
828 | Dieser Fehler tritt immer dann auf, wenn das Validierungstool [nicht korrekt codierte Mustache-Vorlagensyntax](https://mustache.github.io/mustache.5.html) in einem Attributwert ermittelt.
829 | 
830 | ### Attribut enthält einen Teil einer Mustache-Vorlage
831 | 
832 | <table>
833 |   <tr>
834 |   	<td class="col-thirty"><strong>Code</strong></td>
835 |   	<td>TEMPLATE_PARTIAL_IN_ATTR_VALUE</td>
836 |   </tr>
837 |    <tr>
838 |   	<td class="col-thirty"><strong>Format</strong></td>
839 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</td>
840 |   </tr>
841 |    <tr>
842 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
843 |   	<td>Teil der Mustache-Vorlage entfernen</td>
844 |   </tr>
845 | </table>
846 | 
847 | Dieser Fehler tritt immer dann auf, wenn das Validierungstool [einen Teil einer Mustache-Vorlage](https://mustache.github.io/mustache.5.html) in einem Attributwert ermittelt.
848 | 
849 | ## Einstellungsfehler
850 | 
851 | ### Eingestellte Tags
852 | 
853 | <table>
854 |   <tr>
855 |   	<td class="col-thirty"><strong>Code</strong></td>
856 |   	<td>DEPRECATED_TAG</td>
857 |   </tr>
858 |    <tr>
859 |   	<td class="col-thirty"><strong>Format</strong></td>
860 |   	<td>No error message defined as yet (no deprecated tags).</td>
861 |   </tr>
862 |    <tr>
863 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
864 |   	<td>Eingestelltes Tag entfernen</td>
865 |   </tr>
866 | </table>
867 | 
868 | Diese Warnung wird angezeigt, wenn ein zuvor gültiges AMP-Tag im AMP-Dokument ermittelt wird.
869 | Dabei handelt es sich nur um eine Warnung. AMP-Dokumente mit Warnungen sind weiterhin gültig.
870 | Derzeit gibt es keine veralteten Tags. Die Warnung soll künftig verwendet werden, wenn Tags eingestellt werden.
871 | 
872 | ### Eingestelltes Attribut
873 | 
874 | <table>
875 |   <tr>
876 |   	<td class="col-thirty"><strong>Code</strong></td>
877 |   	<td>DEPRECATED_ATTR</td>
878 |   </tr>
879 |    <tr>
880 |   	<td class="col-thirty"><strong>Format</strong></td>
881 |   	<td>"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</td>
882 |   </tr>
883 |    <tr>
884 |   	<td class="col-thirty"><strong>Korrektur</strong></td>
885 |   	<td>Eingestelltes Attribut am besten entfernen</td>
886 |   </tr>
887 | </table>
888 | 
889 | Diese Warnung wird angezeigt, wenn ein zuvor gültiges AMP-Attribut im AMP-Dokument ermittelt wird.
890 | Dabei handelt es sich nur um eine Warnung. AMP-Dokumente mit Warnungen sind weiterhin gültig.
891 | 
892 | Die eingestellten Attribute für die einzelnen AMP-Tags finden Sie, indem Sie in der [Spezifikation des AMP-Validierungstools](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) nach `deprecation` suchen.
893 | 
```
Page 21/24FirstPrevNextLast