#
tokens: 41259/50000 2/561 files (page 20/24)
lines: on (toggle) GitHub
raw markdown copy reset
This is page 20 of 24. Use http://codebase.md/cloudflare/docs/imgs/%7B%7Bg.url(parentDoc.pod_path,%20locale=usedDoc.locale).path%7D%7D?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: Kesalahan Validasi AMP
  3 | ---
  4 | 
  5 | <!---
  6 | Copyright 2015 The AMP HTML Authors. All Rights Reserved.
  7 | 
  8 | Licensed under the Apache License, Version 2.0 (the "License");
  9 | you may not use this file except in compliance with the License.
 10 | You may obtain a copy of the License at
 11 | 
 12 |       http://www.apache.org/licenses/LICENSE-2.0
 13 | 
 14 | Unless required by applicable law or agreed to in writing, software
 15 | distributed under the License is distributed on an "AS-IS" BASIS,
 16 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 17 | See the License for the specific language governing permissions and
 18 | limitations under the License.
 19 | -->
 20 | 
 21 | Tidak boleh ada kesalahan validasi apa pun dalam dokumen AMP yang valid.
 22 | Tujuan dokumen ini adalah untuk membantu Anda memahami
 23 | dengan lebih baik dan memperbaiki kesalahan validasi yang dihadapi
 24 | ketika [memvalidasi laman AMP](/docs/guides/validate.html).
 25 | Untuk ringkasan lengkap kesalahan validasi,
 26 | lihat [spesifikasi validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
 27 | 
 28 | [TOC]
 29 | 
 30 | ## Kesalahan atribut dan tag HTML AMP
 31 | 
 32 | ### Tag wajib tidak tersedia
 33 | 
 34 | <table>
 35 |    <tr>
 36 |   	<td class="col-thirty"><strong>Kode</strong></td>
 37 |   	<td>MANDATORY_TAG_MISSING</td>
 38 |   </tr>
 39 |    <tr>
 40 |   	<td class="col-thirty"><strong>Format</strong></td>
 41 |   	<td>"The mandatory tag '%1' is missing or incorrect."</td>
 42 |   </tr>
 43 |    <tr>
 44 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
 45 |   	<td>Tambahkan (atau perbaiki) tag HTML wajib.</td>
 46 |   </tr>
 47 | </table>
 48 | 
 49 | Tag berikut harus ada di semua dokumen AMP:
 50 | 
 51 | * <a name="doctype"></a>`<!doctype html>`
 52 | * <a name="html"></a>`<html amp> or <html ⚡>`
 53 | * <a name="head"></a>`<head>`
 54 | * <a name="canonical"></a>`<link rel="canonical" href="$SOME_URL" />`
 55 | * <a name="utf"></a>`<meta charset="utf-8">`
 56 | * <a name="viewport"></a>`<meta name="viewport" content="...">`
 57 | * <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>`
 58 | * <a name="ampscript"></a>`<script async src="https://cdn.ampproject.org/v0.js"></script>`
 59 | * <a name="body"></a>`body`
 60 | 
 61 | Tag wajib ini termasuk bidang `mandatory: true` di [spek validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii);
 62 | juga dirujuk dalam [spesifikasi AMP](/docs/reference/spec.html).
 63 | 
 64 | ### Tag yang dibutuhkan oleh tag lain tidak tersedia
 65 | 
 66 | <table>
 67 |    <tr>
 68 |   	<td class="col-thirty"><strong>Kode</strong></td>
 69 |   	<td>TAG_REQUIRED_BY_MISSING</td>
 70 |   </tr>
 71 |    <tr>
 72 |   	<td class="col-thirty"><strong>Format</strong></td>
 73 |   	<td>"The '%1' tag is missing or incorrect, but required by '%2'."</td>
 74 |   </tr>
 75 |    <tr>
 76 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
 77 |   	<td>Tambahkan (atau perbaiki) tag HTML yang dibutuhkan.</td>
 78 |   </tr>
 79 | </table>
 80 | 
 81 | Validator memunculkan kesalahan `TAG_REQUIRED_BY_MISSING`
 82 | ketika menemukan komponen yang diperpanjang di dokumen AMP,
 83 | tetapi tidak menemukan persamaannya `<script>`.
 84 | 
 85 | [Komponen yang diperpanjang](/docs/reference/extended.html)
 86 | harus disertakan dalam dokumen AMP sebagai komponen khusus.
 87 | Untuk memperbaiki kesalahan ini, navigasikan ke laman referensi komponen yang diperpanjang,
 88 | salin skrip yang dibutuhkan, dan tempel ke dokumen AMP `<head>`.
 89 | 
 90 | ### Tag terlarang
 91 | 
 92 | <table>
 93 |    <tr>
 94 |   	<td class="col-thirty"><strong>Kode</strong></td>
 95 |   	<td>DISALLOWED_TAG</td>
 96 |   </tr>
 97 |    <tr>
 98 |   	<td class="col-thirty"><strong>Format</strong></td>
 99 |   	<td>"The tag '%1' is disallowed."</td>
100 |   </tr>
101 |    <tr>
102 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
103 |   	<td>Hapus tag terlarang.</td>
104 |   </tr>
105 | </table>
106 | 
107 | Tag dimasukkan ke daftar putih, sehingga tidak ada daftar definitif semua tag terlarang;
108 | namun, [spesifikasi AMP](/docs/reference/spec.html)
109 | mendefinisikan secara luas kumpulan tag terlarang.
110 | 
111 | ### Atribut wajib tidak tersedia
112 | 
113 | <table>
114 |    <tr>
115 |   	<td class="col-thirty"><strong>Kode</strong></td>
116 |   	<td>MANDATORY_ATTR_MISSING</td>
117 |   </tr>
118 |    <tr>
119 |   	<td class="col-thirty"><strong>Format</strong></td>
120 |   	<td>"The mandatory attribute '%1' is missing in tag '%2'."</td>
121 |   </tr>
122 |    <tr>
123 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
124 |   	<td>Tambahkan atribut wajib ke tag.</td>
125 |   </tr>
126 | </table>
127 | 
128 | Atribut wajib tag AMP didefinisikan dalam
129 | [spek validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
130 | Cukup telusuri tag,
131 | lihat atribut yang tercantum,
132 | dan periksa `mandatory: true`.
133 | Atribut wajib setiap tag AMP juga tercantum
134 | dalam spesifikasi tag.
135 | 
136 | ### Nilai atribut tidak valid
137 | 
138 | <table>
139 |    <tr>
140 |   	<td class="col-thirty"><strong>Kode</strong></td>
141 |   	<td>INVALID_ATTR_VALUE</td>
142 |   </tr>
143 |    <tr>
144 |   	<td class="col-thirty"><strong>Format</strong></td>
145 |   	<td>"The attribute '%1' in tag '%2' is set to the invalid value '%3'."</td>
146 |   </tr>
147 |    <tr>
148 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
149 |   	<td>Perbaiki nilai atribut menjadi nilai yang valid.</td>
150 |   </tr>
151 | </table>
152 | 
153 | Kesalahan ini menunjukkan bahwa tag HTML memiliki atribut dengan nama yang diizinkan,
154 | tetapi nilainya terlarang.
155 | Misalnya, pemicu umum kesalahan ini adalah nilai yang tidak valid untuk URL.
156 | Semua nilai URL (di atribut `href` dan `src`) harus cocok dengan salah satu
157 | [nilai atribut yang mungkin](http://www.w3schools.com/tags/att_a_href.asp) berikut.
158 | 
159 | <strong>PENTING:</strong> Banyak nilai URL di AMP membutuhkan HTTPS.
160 | Jika Anda mendapati kesalahan ini, dan tidak yakin tentang penyebabnya,
161 | periksa spesifikasi tag AMP yang relevan
162 | untuk melihat atribut yang membutuhkan HTTPS.
163 | 
164 | ### Atribut terlarang
165 | 
166 | <table>
167 |   <tr>
168 |   	<td class="col-thirty"><strong>Kode</strong></td>
169 |   	<td>DISALLOWED_ATTR</td>
170 |   </tr>
171 |   <tr>
172 |   	<td class="col-thirty"><strong>Format</strong></td>
173 |   	<td>"The attribute '%1' may not appear in tag '%2'."</td>
174 |   </tr>
175 |   <tr>
176 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
177 |   	<td>Hapus atribut dari tag HTML.</td>
178 |   </tr>
179 | </table>
180 | 
181 | Atribut dimasukkan ke daftar putih, sehingga tidak ada daftar definitif atribut terlarang.
182 | Untuk memeriksa atribut yang didukung untuk setiap tag tertentu,
183 | telusuri tag HTML, kemudian `attrs`
184 | di [spek validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
185 | 
186 | Selain daftar putih atribut tertentu untuk setiap tag,
187 | semua tag AMP dapat menggunakan atribut apa pun yang tercantum dalam daftar putih di `$GLOBAL_ATTRS`;
188 | semua atribut dengan awalan `"data-"` juga dimasukkan dalam daftar putih.
189 | 
190 | ### Teks wajib tidak tersedia atau salah
191 | 
192 | <table>
193 |   <tr>
194 |   	<td class="col-thirty"><strong>Kode</strong></td>
195 |   	<td>MANDATORY_CDATA_MISSING_OR_INCORRECT</td>
196 |   </tr>
197 |    <tr>
198 |   	<td class="col-thirty"><strong>Format</strong></td>
199 |   	<td>"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."</td>
200 |   </tr>
201 |    <tr>
202 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
203 |   	<td>Tambahkan atau perbaiki teks wajib dalam tag.</td>
204 |   </tr>
205 | </table>
206 | 
207 | CDATA adalah data konten antara tag HTML awal dan akhir
208 | serta saat ini dievaluasi dengan daftar putih dan daftar hitam.
209 | Tag dengan CDATA wajib termasuk:
210 | 
211 | [sourcecode:YKL]
212 | <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>
213 | [/sourcecode]
214 | 
215 | Dan:
216 | 
217 | [sourcecode:YKL]
218 | <style amp-custom>
219 | [/sourcecode]
220 | 
221 | Pesan mendetail kesalahan ini dapat berupa salah satu dari yang berikut:
222 | 
223 | * "Gaya wajib yang diulang (js diaktifkan)"
224 | * "Gaya wajib yang diulang (noscript)"
225 | * "Awalan nama kelas CSS -amp- terlarang"
226 | * "Atribut penting terlarang di CSS!"
227 | * "@charset terlarang di CSS"
228 | * "@import terlarang di CSS"
229 | * "@namespace terlarang di CSS"
230 | * "@support terlarang di CSS"
231 | * "@document terlarang di CSS"
232 | * "@page terlarang di CSS"
233 | * "@viewport terlarang di CSS"
234 | 
235 | ### Teks terlarang dalam tag
236 | 
237 | <table>
238 |    <tr>
239 |   	<td class="col-thirty"><strong>Kode</strong></td>
240 |   	<td>CDATA_VIOLATES_BLACKLIST</td>
241 |   </tr>
242 |    <tr>
243 |   	<td class="col-thirty"><strong>Format</strong></td>
244 |   	<td>"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</td>
245 |   </tr>
246 |    <tr>
247 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
248 |   	<td>Hapus teks terlarang.</td>
249 |   </tr>
250 | </table>
251 | 
252 | Data CSS tertentu dimasukkan ke daftar hitam
253 | untuk memvalidasi aturan AMP CSS yang penting.
254 | 
255 | Berikut adalah daftar data CSS yang dimasukkan ke daftar hitam
256 | (lihat juga <a href="https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii">`blacklisted_cdata_regex` di spek validator AMP</a>):
257 | 
258 | * `"\\.i?-amp-"` ("Awalan nama kelas -amp- CSS")
259 | * `"!important"`
260 | * `"charset"`
261 | * `"@import"`
262 | * `"@namespace"`
263 | * `"@document"`
264 | * `"@page"`
265 | * `"@viewport"`
266 | 
267 | ### Properti terlarang dalam atribut di tag
268 | 
269 | <table>
270 |    <tr>
271 |   	<td class="col-thirty"><strong>Kode</strong></td>
272 |   	<td>DISALLOWED_PROPERTY_IN_ATTR_VALUE</td>
273 |   </tr>
274 |    <tr>
275 |   	<td class="col-thirty"><strong>Format</strong></td>
276 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is disallowed."</td>
277 |   </tr>
278 |    <tr>
279 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
280 |   	<td>Hapus properti terlarang di atribut tertentu.</td>
281 |   </tr>
282 | </table>
283 | 
284 | Kesalahan ini terjadi ketika nama properti dalam atribut tidak diperbolehkan.
285 | Properti istilah dalam konteks ini berarti data kunci/nilai terstruktur dalam atribut.
286 | Misalnya, di
287 | `<meta name="viewport content="width=device-width;minimum-scale=1">`,
288 | `width` dan `minimum-scale` adalah nama properti.
289 | 
290 | Berikut ini yang menyebabkan kesalahan DISALLOWED_PROPERTY_IN_ATTR_VALUE:
291 | 
292 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
293 | 
294 | Contoh lainnya,
295 | yang berikut akan menyebabkan kesalahan:
296 | 
297 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
298 | 
299 | Seharusnya: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
300 | 
301 | ### Nilai properti tidak valid
302 | 
303 | <table>
304 |    <tr>
305 |   	<td class="col-thirty"><strong>Kode</strong></td>
306 |   	<td>INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</td>
307 |   </tr>
308 |    <tr>
309 |   	<td class="col-thirty"><strong>Format</strong></td>
310 |   	<td>"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</td>
311 |   </tr>
312 |    <tr>
313 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
314 |   	<td>Perbaiki nilai properti yang tidak valid.</td>
315 |   </tr>
316 | </table>
317 | 
318 | Kesalahan ini terjadi jika nilai properti dalam atribut tidak valid.
319 | Properti istilah dalam konteks ini berarti data kunci/nilai terstruktur dalam atribut.
320 | Misalnya, di
321 | `<meta name="viewport content="width=device-width;minimum-scale=1">`,
322 | `device-width` dan `1` adalah nilai properti.
323 | 
324 | Berikut ini yang menyebabkan kesalahan INVALID_PROPERTY_VALUE_IN_ATTR_VALUE:
325 | 
326 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
327 | 
328 | Contoh lainnya,
329 | yang berikut akan menyebabkan kesalahan:
330 | 
331 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
332 | 
333 | Seharusnya: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
334 | 
335 | ### URL tidak tersedia
336 | 
337 | <table>
338 |   <tr>
339 |     <td class="col-thirty"><strong>Kode</strong></td>
340 |     <td>MISSING_URL</td>
341 |   </tr>
342 |    <tr>
343 |     <td class="col-thirty"><strong>Format</strong></td>
344 |     <td>"Missing URL for attribute '%1' in tag '%2'."</td>
345 |   </tr>
346 |    <tr>
347 |     <td class="col-thirty"><strong>Perbaikan</strong></td>
348 |     <td>Tambahkan URL yang valid.</td>
349 |   </tr>
350 | </table>
351 | 
352 | Kesalahan ini terjadi jika URL yang dibutuhkan atribut tidak tersedia,
353 | misalnya, atribut `href` atau `src` kosong.
354 | 
355 | ### URL tidak valid
356 | 
357 | <table>
358 |   <tr>
359 |     <td class="col-thirty"><strong>Kode</strong></td>
360 |     <td>INVALID_URL_PROTOCOL</td>
361 |   </tr>
362 |    <tr>
363 |     <td class="col-thirty"><strong>Format</strong></td>
364 |     <td>"Malformed URL '%3' for attribute '%1' in tag '%2'"</td>
365 |   </tr>
366 |    <tr>
367 |     <td class="col-thirty"><strong>Perbaikan</strong></td>
368 |     <td>Perbaiki URL yang rusak.</td>
369 |   </tr>
370 | </table>
371 | 
372 | Kesalahan ini terjadi jika atribut memiliki URL,
373 | tetapi URL-nya tidak valid.
374 | 
375 | ### Protokol URL tidak valid
376 | 
377 | <table>
378 |   <tr>
379 |     <td class="col-thirty"><strong>Kode</strong></td>
380 |     <td>INVALID_URL_PROTOCOL</td>
381 |   </tr>
382 |    <tr>
383 |     <td class="col-thirty"><strong>Format</strong></td>
384 |     <td>Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</td>
385 |   </tr>
386 |    <tr>
387 |     <td class="col-thirty"><strong>Perbaikan</strong></td>
388 |     <td>Ubah ke protokol yang valid, misalnya, `http` mungkin perlu diubah ke `https`.</td>
389 |   </tr>
390 | </table>
391 | 
392 | Kesalahan ini terjadi karena tag yang memiliki `href` atau `src`
393 | harus ditetapkan ke protokol tertentu.
394 | Misalnya, banyak tag yang memerlukan `https`.
395 | 
396 | ### Properti wajib tidak tersedia di atribut
397 | 
398 | <table>
399 |   <tr>
400 |   	<td class="col-thirty"><strong>Kode</strong></td>
401 |   	<td>MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</td>
402 |   </tr>
403 |    <tr>
404 |   	<td class="col-thirty"><strong>Format</strong></td>
405 |   	<td>"The property '%1' is missing from attribute '%2' in tag '%3'."</td>
406 |   </tr>
407 |    <tr>
408 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
409 |   	<td>Tambahkan properti yang tidak tersedia.</td>
410 |   </tr>
411 | </table>
412 | 
413 | Saat ini, kesalahan ini terjadi jika properti wajib berikut tidak tersedia:
414 | 
415 | * `content="...ie=..."`
416 | * `content="...width=..."`
417 | * `content="...minimum-scale=..."`
418 | 
419 | Properti tersebut mengacu pada tag yang diharapkan:
420 | 
421 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
422 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
423 | 
424 | ### Atribut saling lepas
425 | 
426 | <table>
427 |   <tr>
428 |   	<td class="col-thirty"><strong>Kode</strong></td>
429 |   	<td>MUTUALLY_EXCLUSIVE_ATTRS</td>
430 |   </tr>
431 |    <tr>
432 |   	<td class="col-thirty"><strong>Format</strong></td>
433 |   	<td>"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</td>
434 |   </tr>
435 |    <tr>
436 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
437 |   	<td>Hapus salah satu atribut yang saling lepas.</td>
438 |   </tr>
439 | </table>
440 | 
441 | Kesalahan ini terjadi jika tag memiliki atribut yang saling lepas.
442 | Misalnya, hanya satu yang diizinkan dari tag berikut:
443 | 
444 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` atau `src`
445 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` atau `src`
446 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` atau `srcdoc`
447 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` atau `data-videoid`
448 | 
449 | ### Atribut wajib di daftar tidak tersedia
450 | 
451 | <table>
452 |   <tr>
453 |   	<td class="col-thirty"><strong>Kode</strong></td>
454 |   	<td>MANDATORY_ONEOF_ATTR_MISSING</td>
455 |   </tr>
456 |    <tr>
457 |   	<td class="col-thirty"><strong>Format</strong></td>
458 |   	<td>"The tag '%1' is missing a mandatory attribute - pick one of %2." </td>
459 |   </tr>
460 |    <tr>
461 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
462 |   	<td>Tambahkan atribut wajib yang tidak tersedia dari pilihan atribut yang tersedia.</td>
463 |   </tr>
464 | </table>
465 | 
466 | Kesalahan ini terjadi jika atribut yang dibutuhkan tag tidak tersedia
467 | di pilihan.
468 | Misalnya, tag berikut memerlukan salah satu atribut dari pilihan yang tersedia:
469 | 
470 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` atau `src`
471 | * [amp-instagram](/docs/reference/extended/amp-instagram.htm): `data-shortcode` atau `src`
472 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` atau `srcdoc`
473 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` atau `data-videoid`
474 | 
475 | ### Tag induk salah
476 | 
477 | <table>
478 |   <tr>
479 |   	<td class="col-thirty"><strong>Kode</strong></td>
480 |   	<td>WRONG_PARENT_TAG</td>
481 |   </tr>
482 |    <tr>
483 |   	<td class="col-thirty"><strong>Format</strong></td>
484 |   	<td>"The parent tag of tag '%1' is '%2', but it can only be '%3'."</td>
485 |   </tr>
486 |    <tr>
487 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
488 |   	<td>Buat tag turunan langsung dari tag induk yang dibutuhkan.</td>
489 |   </tr>
490 | </table>
491 | 
492 | Tag tertentu memerlukan induk langsung (bukan induk jauh).
493 | Berikut daftar tag tertentu yang membutuhkan induk
494 | (tag, induk):
495 | 
496 | * `!doctype` membutuhkan tag induk `root`.
497 | * `html` membutuhkan tag induk `!doctype`.
498 | * `head` membutuhkan tag induk `html`.
499 | * `body` membutuhkan tag induk `html`.
500 | * `link` membutuhkan tag induk `head`.
501 | * `meta` membutuhkan tag induk `head`.
502 | * `style amp-custom` membutuhkan tag induk `head`.
503 | * `style` membutuhkan tag induk `boilerplate (noscript)`.
504 | * `noscript` membutuhkan tag induk `head`.
505 | * `script` membutuhkan tag induk `head`.
506 | * `source` membutuhkan tag media (`amp-audio`, `amp-video`, dll.).
507 | 
508 | ### Induk tag terlarang
509 | 
510 | <table>
511 |   <tr>
512 |   	<td class="col-thirty"><strong>Kode</strong></td>
513 |   	<td>DISALLOWED_TAG_ANCESTOR</td>
514 |   </tr>
515 |    <tr>
516 |   	<td class="col-thirty"><strong>Format</strong></td>
517 |   	<td>"The tag '%1' may not appear as a descendant of tag '%2'."</td>
518 |   </tr>
519 |    <tr>
520 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
521 |   	<td>Hapus (atau pindahkan) tag bertingkat terlarang.</td>
522 |   </tr>
523 | </table>
524 | 
525 | Kesalahan ini terjadi jika tag merupakan turunan dari tag lain
526 | yang tidak memvalidasi.
527 | Saat ini, contohnya hanya tag `template`,
528 | yang tidak dapat bertingkat di tag `template` lain.
529 | 
530 | ### Induk tag wajib
531 | 
532 | <table>
533 |   <tr>
534 |   	<td class="col-thirty"><strong>Kode</strong></td>
535 |   	<td>MANDATORY_TAG_ANCESTOR</td>
536 |   </tr>
537 |    <tr>
538 |   	<td class="col-thirty"><strong>Format</strong></td>
539 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'."</td>
540 |   </tr>
541 |    <tr>
542 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
543 |   	<td>Hapus tag atau buat turunan tag tertentu.</td>
544 |   </tr>
545 | </table>
546 | 
547 | Turunan wajib didefinisikan di
548 | [spesifikasi validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii)
549 | sebagai `mandatory_ancestor`.
550 | 
551 | Kesalahan ini terjadi saat tag berikut
552 | tidak memiliki `mandatory_ancestor` (tag, induk):
553 | 
554 | * `img` harus berupa turunan dari `noscript`.
555 | * `video` harus berupa turunan dari `noscript`.
556 | * `audio` harus berupa turunan dari `noscript`.
557 | * `noscript` harus berupa turunan dari `body`.
558 | 
559 | ### Induk tag wajib dengan petunjuk
560 | 
561 | <table>
562 |   <tr>
563 |   	<td class="col-thirty"><strong>Kode</strong></td>
564 |   	<td>MANDATORY_TAG_ANCESTOR_WITH_HINT</td>
565 |   </tr>
566 |    <tr>
567 |   	<td class="col-thirty"><strong>Format</strong></td>
568 |   	<td>"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</td>
569 |   </tr>
570 |    <tr>
571 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
572 |   	<td>Hapus tag, buat turunan tag tertentu, atau ganti tag dengan tag yang diberi petunjuk.</td>
573 |   </tr>
574 | </table>
575 | 
576 | Kesalahan terjadi jika salah satu tag berikut ditemukan di dokumen AMP,
577 | dan tidak bertumpuk dengan benar di induk wajibnya:
578 | 
579 | * `img` tidak dalam induk `noscript`.
580 | * `video` tidak dalam induk `noscript`.
581 | * `audio` tidak dalam induk `noscript`.
582 | * `noscript` tidak dalam induk `body`.
583 | 
584 | ### Tag unik duplikat
585 | 
586 | <table>
587 |   <tr>
588 |   	<td class="col-thirty"><strong>Kode</strong></td>
589 |   	<td>DUPLICATE_UNIQUE_TAG</td>
590 |   </tr>
591 |    <tr>
592 |   	<td class="col-thirty"><strong>Format</strong></td>
593 |   	<td>"The tag '%1' appears more than once in the document."</td>
594 |   </tr>
595 |    <tr>
596 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
597 |   	<td>Hapus salah satu tag duplikat dari dokumen AMP.</td>
598 |   </tr>
599 | </table>
600 | 
601 | Kesalahan ini terjadi jika hanya satu kemunculan tag yang diizinkan,
602 | dan ditemukan diplikatnya.
603 | 
604 | Daftar lengkap tag unik yang diketahui:
605 | 
606 | * `<doctype html>`
607 | * `<html amp>`
608 | * `<head>`
609 | * `<link rel=canonical href=...>`
610 | * `<link rel=amphtml href=...>`
611 | * `<meta charset="utf-8">`
612 | * `<meta viewport>`
613 | * `<style amp-custom>`
614 | * `<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>`
615 | * `<body>`
616 | * `<script src="https://cdn.ampproject.org/v0.js">`
617 | 
618 | ## Kesalahan gaya dan tata letak
619 | 
620 | Sebelum mendalami kesalahan gaya dan tata letak,
621 | Anda perlu memahami cara kerja
622 | [pemberian gaya](/docs/guides/responsive/style_pages.html) dan
623 | [tata letak](/docs/guides/responsive/control_layout.html) di AMP.
624 | Karena laman AMP adalah laman HTML, pemberian gaya kurang lebih sama seperti pada laman HTML.
625 | Tetapi ada beberapa pembatasan untuk memastikan laman dimuat dengan cepat,
626 | dan validator AMP memberlakukan pembatasan ini.
627 | 
628 | Tata letak lebih terkontrol di laman AMP.
629 | Setiap tag yang ditampilkan pada laman
630 | membutuhkan tinggi dan lebar yang telah ditetapkan sebelumnya,
631 | untuk mengurangi perenderan dan pengguliran yang tidak perlu secara signifikan.
632 | Hal ini tidak berarti Anda perlu menyertakan atribut ini secara manual.
633 | Untuk jenis tata letak tertentu,
634 | validator AMP tidak akan menampilkan kesalahan
635 | karena nilai default telah diasumsikan.
636 | 
637 | Setiap tag AMP memiliki akhiran `supported_layouts`,
638 | seperti yang didefinisikan dalam
639 | [spesifikasi validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
640 | Validator akan menampilkan kesalahan untuk tata letak yang tidak didukung,
641 | dan akan memeriksa aturan validasi tata letak yang telah didefinisikan sebelumnya.
642 | 
643 | ### Stylesheet terlalu panjang
644 | 
645 | <table>
646 |   <tr>
647 |   	<td class="col-thirty"><strong>Kode</strong></td>
648 |   	<td>STYLESHEET_TOO_LONG</td>
649 |   </tr>
650 |    <tr>
651 |   	<td class="col-thirty"><strong>Format</strong></td>
652 |   	<td>"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</td>
653 |   </tr>
654 |    <tr>
655 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
656 |   	<td>Kurangi ukuran stylesheet menjadi di bawah 50.000 byte.</td>
657 |   </tr>
658 | </table>
659 | 
660 | Kesalahan ini akan ditampilkan
661 | jika validator AMP mengukur konten gaya
662 | dalam `<style amp-custom>` dan ukurannya melebihi batas 50.000 byte.
663 | 
664 | ### Kesalahan sintaksis CSS
665 | 
666 | <table>
667 |    <tr>
668 |   	<td class="col-thirty"><strong>Kode</strong></td>
669 |   	<td>CSS_SYNTAX</td>
670 |   </tr>
671 |    <tr>
672 |   	<td class="col-thirty"><strong>Format</strong></td>
673 |   	<td>"CSS syntax error in tag '%1' - %2."</td>
674 |   </tr>
675 |    <tr>
676 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
677 |   	<td>Perbaiki kesalahan sintaksis CSS.</td>
678 |   </tr>
679 | </table>
680 | 
681 | Kesalahan ini terjadi jika Anda memiliki kesalahan sintaksis CSS
682 | di tag tertentu.
683 | Jika tidak yakin penyebab kesalahan,
684 | coba jalankan CSS
685 | lewat validator CSS online, misalnya,
686 | [csslint](http://csslint.net/).
687 | 
688 | ### Kesalahan sintaksis CSS pada aturan tertentu
689 | 
690 | <table>
691 |   <tr>
692 |   	<td class="col-thirty"><strong>Kode</strong></td>
693 |   	<td>CSS_SYNTAX_INVALID_AT_RULE</td>
694 |   </tr>
695 |    <tr>
696 |   	<td class="col-thirty"><strong>Format</strong></td>
697 |   	<td>"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</td>
698 |   </tr>
699 |    <tr>
700 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
701 |   	<td>Perbaiki kesalahan sintaksis CSS tertentu.</td>
702 |   </tr>
703 | </table>
704 | 
705 | Kesalahan ini mengacu pada @-aturan dalam CSS,
706 | untuk setiap AMP yang hanya mengizinkan beberapa aturan.
707 | (lihat juga [spesifikasi AMP ](/docs/reference/spec.html)).
708 | Misalnya, `@import` tidak diizinkan.
709 | Kesalahan validasi secara khusus
710 | memberi tahu Anda aturan yang tidak valid,
711 | memudahkan untuk memperbaiki aturan.
712 | 
713 | ### Tata letak tersirat tidak didukung tag AMP
714 | 
715 | <table>
716 |   <tr>
717 |   	<td class="col-thirty"><strong>Kode</strong></td>
718 |   	<td>IMPLIED_LAYOUT_INVALID</td>
719 |   </tr>
720 |    <tr>
721 |   	<td class="col-thirty"><strong>Format</strong></td>
722 |   	<td>"The implied layout '%1' is not supported by tag '%2'."</td>
723 |   </tr>
724 |    <tr>
725 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
726 |   	<td>Berikan atribut tata letak yang valid kepada tag.</td>
727 |   </tr>
728 | </table>
729 | 
730 | Kesalahan ini terjadi jika Anda tidak menentukan tata letak untuk tag AMP,
731 | dan tata letak tersirat (berdasarkan lebar, tinggi, dan ukuran) tidak didukung.
732 | Periksa nilai `supported_layout` untuk tag
733 | di [spesifikasi validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
734 | 
735 | Perilaku tata letak yang sebenarnya ditentukan oleh atribut `layout`.
736 | Untuk mengetahui lebih banyak tentang cara kerja tata letak,
737 | lihat [Cara Mengontrol Tata Letak](/docs/guides/responsive/control_layout.html) dan
738 | [Spesifikasi sistem tata letak HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
739 | 
740 | **Catatan:** Jika tata letak tidak ditentukan,
741 | serta nilai `width` dan `height` tidak disertakan,
742 | default tata letak menjadi PENAMPUNG.
743 | Validator menampilkan kesalahan
744 | karena PENAMPUNG tidak didukung di tag AMP mana pun.
745 | Tentukan tata letak selain PENAMPUNG,
746 | atau tambahkan nilai `width` dan/atau `height`, maka kesalahan akan hilang.
747 | 
748 | ### Atribut tidak diizinkan oleh tata letak tersirat
749 | 
750 | <table>
751 |   <tr>
752 |     <td class="col-thirty"><strong>Kode</strong></td>
753 |     <td>ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</td>
754 |   </tr>
755 |    <tr>
756 |     <td class="col-thirty"><strong>Format</strong></td>
757 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
758 |   </tr>
759 |    <tr>
760 |     <td class="col-thirty"><strong>Perbaikan</strong></td>
761 |     <td>Hapus atribut terlarang dari tag,
762 |       atau tentukan tata letak lain yang mengizinkannya.</td>
763 |   </tr>
764 | </table>
765 | 
766 | Kesalahan ini terjadi jika Anda tidak menentukan tata letak untuk tag AMP,
767 | dan tata letak tersirat berisi atribut terlarang.
768 | Atribut terlarang untuk jenis tata letak dijelaskan di
769 | [spesifikasi sistem tata letak HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
770 | 
771 | ### Tata letak yang ditentukan tidak didukung oleh tag AMP
772 | 
773 | <table>
774 |   <tr>
775 |   	<td class="col-thirty"><strong>Kode</strong></td>
776 |   	<td>SPECIFIED_LAYOUT_INVALID</td>
777 |   </tr>
778 |    <tr>
779 |   	<td class="col-thirty"><strong>Format</strong></td>
780 |   	<td>"The specified layout '%1' is not supported by tag '%2'."</td>
781 |   </tr>
782 |    <tr>
783 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
784 |   	<td>Tentukan tata letak yang didukung oleh tag.</td>
785 |   </tr>
786 | </table>
787 | 
788 | Kesalahan ini terjadi jika tata letak yang ditentukan
789 | untuk tag tidak didukung.
790 | Periksa nilai `supported_layout` untuk tag
791 | di [spesifikasi validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
792 | 
793 | Perilaku tata letak yang sebenarnya ditentukan oleh atribut `layout`.
794 | Untuk mengetahui lebih banyak tentang cara kerja tata letak,
795 | lihat [Cara Mengontrol Tata Letak](/docs/guides/responsive/control_layout.html) dan
796 | [Spesifikasi sistem tata letak HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
797 | 
798 | ### Atribut tidak diizinkan oleh tata letak tertentu
799 | 
800 | <table>
801 |   <tr>
802 |     <td class="col-thirty"><strong>Kode</strong></td>
803 |     <td>ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</td>
804 |   </tr>
805 |    <tr>
806 |     <td class="col-thirty"><strong>Format</strong></td>
807 |     <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
808 |   </tr>
809 |    <tr>
810 |     <td class="col-thirty"><strong>Perbaikan</strong></td>
811 |     <td>Hapus atribut terlarang dari tag,
812 |       atau tentukan tata letak lain yang mengizinkannya.</td>
813 |   </tr>
814 | </table>
815 | 
816 | Kesalahan ini terjadi jika Anda menentukan tata letak untuk tag AMP,
817 | dan tata letak berisi atribut terlarang.
818 | Atribut terlarang untuk jenis tata letak dijelaskan di
819 | [spesifikasi sistem tata letak HTML AMP](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
820 | 
821 | ### Nilai yang dibutuhkan tata letak tidak valid
822 | 
823 | <table>
824 |   <tr>
825 |   	<td class="col-thirty"><strong>Kode</strong></td>
826 |   	<td>ATTR_VALUE_REQUIRED_BY_LAYOUT</td>
827 |   </tr>
828 |    <tr>
829 |   	<td class="col-thirty"><strong>Format</strong></td>
830 |   	<td>"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</td>
831 |   </tr>
832 |    <tr>
833 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
834 |   	<td>Tentukan atribut ke nilai tertentu.</td>
835 |   </tr>
836 | </table>
837 | 
838 | Kesalahan ini terjadi jika nilai atribut tata letak tertentu tidak valid.
839 | Untuk memahami hal yang memicu kesalahan ini,
840 | Anda perlu membiasakan diri dengan
841 | [perilaku tata letak yang berbeda](/docs/guides/responsive/control_layout.html#size-and-position-elements).
842 | 
843 | Anggap tata letak ditetapkan ke `fixed-height` dan
844 | Anda menyertakan nilai numerik `height` dan `width`.
845 | Tata letak `fixed-height` bernilai `height`.
846 | Atribut `width` tidak boleh ada, atau setel ke `auto`.
847 | Validator menampilkan ATTR_VALUE_REQUIRED_BY_LAYOUT.
848 | 
849 | ### Unit lebar dan tinggi tidak konsisten
850 | 
851 | <table>
852 |   <tr>
853 |   	<td class="col-thirty"><strong>Kode</strong></td>
854 |   	<td>INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</td>
855 |   </tr>
856 |    <tr>
857 |   	<td class="col-thirty"><strong>Format</strong></td>
858 |   	<td>"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</td>
859 |   </tr>
860 |    <tr>
861 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
862 |   	<td>Berikan unit lebar dan tinggi yang konsisten.</td>
863 |   </tr>
864 | </table>
865 | 
866 | Dengan pengecualian `layout=fixed`,
867 | atribut lebar dan tinggi harus dinyatakan dalam unit yang sama.
868 | Jika tidak, hal ini akan memicu kesalahan.
869 | 
870 | Misalnya, `<amp-img src="" layout="responsive" width="42px" height="42rem">`,
871 | menyebabkan pesan kesalahan:
872 | 
873 | "Unit lebar dan tinggi pada tag 'amp-img' tidak konsisten- lebar ditentukan dalam 'px' sedangkan tinggi ditentukan dalam 'rem'."
874 | 
875 | ## Kesalahan pemberian template
876 | 
877 | Laman AMP tidak dapat menyertakan sintaksis pemberian template,
878 | kecuali sintaksis tersebut dalam tag AMP yang
879 | dirancang khusus untuk menyertakan template, misalnya,
880 | [amp-mustache](/docs/reference/extended/amp-mustache.html).
881 | 
882 | Diperbolehkan menyertakan template di file sumber,
883 | selama keluaran yang dihasilkan file tersebut tidak berisi template
884 | (lihat juga
885 | [Menggunakan prapemrosesan CSS](/docs/guides/responsive/style_pages.html#use-css-preprocessors)).
886 | 
887 | ### Atribut berisi sintaksis template
888 | 
889 | <table>
890 |   <tr>
891 |   	<td class="col-thirty"><strong>Kode</strong></td>
892 |   	<td>TEMPLATE_IN_ATTR_NAME</td>
893 |   </tr>
894 |    <tr>
895 |   	<td class="col-thirty"><strong>Format</strong></td>
896 |   	<td>"Mustache template syntax in attribute name '%1' in tag '%2'."</td>
897 |   </tr>
898 |    <tr>
899 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
900 |   	<td>Hapus sintaksis template Mustache dari atribut.</td>
901 |   </tr>
902 | </table>
903 | 
904 | Kesalahan ini terjadi kapan pun validator menemukan
905 | [sintaksis template Mustache](https://mustache.github.io/mustache.5.html)
906 | di nilai atribut.
907 | 
908 | ### Atribut berisi sintaksis template yang tidak dapat lolos
909 | 
910 | <table>
911 |   <tr>
912 |   	<td class="col-thirty"><strong>Kode</strong></td>
913 |   	<td>UNESCAPED_TEMPLATE_IN_ATTR_VALUE</td>
914 |   </tr>
915 |    <tr>
916 |   	<td class="col-thirty"><strong>Format</strong></td>
917 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</td>
918 |   </tr>
919 |    <tr>
920 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
921 |   	<td>Loloskan template Mustache.</td>
922 |   </tr>
923 | </table>
924 | 
925 | Kesalahan ini terjadi kapan pun validator menemukan
926 | [sintaksis template Mustache yang tidak dapat lolos](https://mustache.github.io/mustache.5.html)
927 | di nilai atribut.
928 | 
929 | ### Atribut berisi sebagian template
930 | 
931 | <table>
932 |   <tr>
933 |   	<td class="col-thirty"><strong>Kode</strong></td>
934 |   	<td>TEMPLATE_PARTIAL_IN_ATTR_VALUE</td>
935 |   </tr>
936 |    <tr>
937 |   	<td class="col-thirty"><strong>Format</strong></td>
938 |   	<td>"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</td>
939 |   </tr>
940 |    <tr>
941 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
942 |   	<td>Hapus sebagian mustache.</td>
943 |   </tr>
944 | </table>
945 | 
946 | Kesalahan ini terjadi kapan saja validator menemukan
947 | [Mustache sebagian](https://mustache.github.io/mustache.5.html)
948 | di nilai atribut.
949 | 
950 | ## Kesalahan penghentian
951 | 
952 | ### Tag tidak berlaku lagi
953 | 
954 | <table>
955 |   <tr>
956 |   	<td class="col-thirty"><strong>Kode</strong></td>
957 |   	<td>DEPRECATED_TAG</td>
958 |   </tr>
959 |    <tr>
960 |   	<td class="col-thirty"><strong>Format</strong></td>
961 |   	<td>No error message defined as yet (no deprecated tags).</td>
962 |   </tr>
963 |    <tr>
964 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
965 |   	<td>Hapus tag yang tidak berlaku lagi.</td>
966 |   </tr>
967 | </table>
968 | 
969 | Peringatan ini terjadi jika tag AMP yang sebelumnya valid ditemukan di dokumen AMP.
970 | Ini hanya peringatan; dokumen AMP dengan peringatan ini masih tetap valid.
971 | Saat ini tidak ada tag yang tidak berlaku; peringatan ini dipesan untuk penghentian mendatang.
972 | 
973 | ### Atribut tidak berlaku lagi
974 | 
975 | <table>
976 |   <tr>
977 |   	<td class="col-thirty"><strong>Kode</strong></td>
978 |   	<td>DEPRECATED_ATTR</td>
979 |   </tr>
980 |    <tr>
981 |   	<td class="col-thirty"><strong>Format</strong></td>
982 |   	<td>"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</td>
983 |   </tr>
984 |    <tr>
985 |   	<td class="col-thirty"><strong>Perbaikan</strong></td>
986 |   	<td>Sebagai praktik yang baik, hapus atribut yang tidak berlaku lagi.</td>
987 |   </tr>
988 | </table>
989 | 
990 | Peringatan ini terjadi jika atribut AMP yang sebelumnya valid ditemukan di dokumen AMP.
991 | Ini hanya peringatan; dokumen AMP dengan peringatan ini masih tetap valid.
992 | 
993 | Identifikasikan atribut setiap tag AMP yang tidak berlaku lagi
994 | dengan menelusuri `deprecation` di
995 | [spesifikasi validator AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
996 | </body>
997 | </html>
998 | 
```

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

```markdown
  1 | ---
  2 | $title: Błędy weryfikacji stron AMP
  3 | ---
  4 | 
  5 | <!---
  6 | Copyright 2015 The AMP HTML Authors. All Rights Reserved.
  7 | 
  8 | Licensed under the Apache License, Version 2.0 (the "License");
  9 | you may not use this file except in compliance with the License.
 10 | You may obtain a copy of the License at
 11 | 
 12 |       http://www.apache.org/licenses/LICENSE-2.0
 13 | 
 14 | Unless required by applicable law or agreed to in writing, software
 15 | distributed under the License is distributed on an "AS-IS" BASIS,
 16 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 17 | See the License for the specific language governing permissions and
 18 | limitations under the License.
 19 | -->
 20 | 
 21 | Poprawne dokumenty AMP nie mogą zawierać żadnych błędów weryfikacji.
 22 | Ten artykuł pomoże Ci lepiej zrozumieć błędy weryfikacji i skuteczniej usuwać problemy, które możesz napotkać podczas [weryfikacji stron AMP](/docs/guides/validate.html).
 23 | Pełny przegląd błędów weryfikacji zawiera [specyfikacja narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
 24 | 
 25 | [TOC]
 26 | 
 27 | ## Błędy tagów HTML i atrybutów na stronach AMP
 28 | 
 29 | ### Brak obowiązkowego tagu
 30 | 
 31 | <table>
 32 |    <tr>
 33 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
 42 |   	<td>Dodaj (lub popraw) obowiązkowy tag HTML.</td>
 43 |   </tr>
 44 | </table>
 45 | 
 46 | Wszystkie dokumenty AMP muszą zawierać poniższe tagi:
 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 | Obowiązkowe tagi zawierają pole `mandatory: true` w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii), a [specyfikacja AMP](/docs/reference/spec.html) również odwołuje się do niego.
 59 | 
 60 | ### Brak tagu wymaganego przez inny tag
 61 | 
 62 | <table>
 63 |    <tr>
 64 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
 73 |   	<td>Dodaj (lub popraw) wymagany tag HTML.</td>
 74 |   </tr>
 75 | </table>
 76 | 
 77 | Narzędzie do weryfikacji generuje błąd `TAG_REQUIRED_BY_MISSING` po napotkaniu rozszerzonego komponentu w dokumencie AMP, dla którego nie ma odpowiednika w postaci tagu `<script>`.
 78 | 
 79 | [Rozszerzone komponenty](/docs/reference/extended.html) muszą być zawarte w dokumencie AMP jako niestandardowe elementy.
 80 | Aby usunąć takie błędy, przejdź do referencyjnej strony rozszerzonego elementu, skopiuj wymagany skrypt i wklej go do tagu `<head>` dokumentu AMP.
 81 | 
 82 | ### Niedozwolony tag
 83 | 
 84 | <table>
 85 |    <tr>
 86 |   	<td class="col-thirty"><strong>Kod</strong></td>
 87 |   	<td>DISALLOWED_TAG</td>
 88 |   </tr>
 89 |    <tr>
 90 |   	<td class="col-thirty"><strong>Format</strong></td>
 91 |   	<td>"The tag '%1' is disallowed."</td>
 92 |   </tr>
 93 |    <tr>
 94 |   	<td class="col-thirty"><strong>Rozwiązanie</strong></td>
 95 |   	<td>Usuń niedozwolony tag.</td>
 96 |   </tr>
 97 | </table>
 98 | 
 99 | Tagi są dozwolonymi elementami, i chociaż nie istnieje zamknięta lista wszystkich niedozwolonych tagów, [specyfikacja AMP](/docs/reference/spec.html) zawiera obszerną definicję takich tagów.
100 | 
101 | ### Brak obowiązkowego atrybutu
102 | 
103 | <table>
104 |    <tr>
105 |   	<td class="col-thirty"><strong>Kod</strong></td>
106 |   	<td>MANDATORY_ATTR_MISSING</td>
107 |   </tr>
108 |    <tr>
109 |   	<td class="col-thirty"><strong>Format</strong></td>
110 |   	<td>"The mandatory attribute '%1' is missing in tag '%2'."</td>
111 |   </tr>
112 |    <tr>
113 |   	<td class="col-thirty"><strong>Rozwiązanie</strong></td>
114 |   	<td>Dodaj obowiązkowy atrybut do tagu.</td>
115 |   </tr>
116 | </table>
117 | 
118 | Obowiązkowe atrybuty tagów AMP są zdefiniowane w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
119 | Wystarczy tylko znaleźć tag, przejrzeć wyświetlone atrybuty i sprawdzić, czy występuje tam wartość `mandatory: true`.
120 | Specyfikacja każdego tagu AMP zawiera również jego obowiązkowe atrybuty.
121 | 
122 | ### Nieprawidłowa wartość atrybutu
123 | 
124 | <table>
125 |    <tr>
126 |   	<td class="col-thirty"><strong>Kod</strong></td>
127 |   	<td>INVALID_ATTR_VALUE</td>
128 |   </tr>
129 |    <tr>
130 |   	<td class="col-thirty"><strong>Format</strong></td>
131 |   	<td>"The attribute '%1' in tag '%2' is set to the invalid value '%3'."</td>
132 |   </tr>
133 |    <tr>
134 |   	<td class="col-thirty"><strong>Rozwiązanie</strong></td>
135 |   	<td>Zmień wartość atrybutu na prawidłową.</td>
136 |   </tr>
137 | </table>
138 | 
139 | Ten błąd oznacza, że tag HTML zawiera atrybut o dozwolonej nazwie, ale o niedozwolonej wartości.
140 | Ten błąd wywołują często nieprawidłowe wartości adresów URL.
141 | Wszystkie wartości adresów URL (w atrybutach `href` i `src`) muszą odpowiadać jednej z takich [możliwych wartości atrybutów](http://www.w3schools.com/tags/att_a_href.asp).
142 | 
143 | <strong>WAŻNE:</strong> wiele wartości adresów URL na stronach AMP wymaga HTTPS. Jeśli ten błąd pojawia się z niejasnych dla Ciebie przyczyn, sprawdź w specyfikacji odpowiedniego tagu AMP, czy konkretny atrybut wymaga HTTPS.
144 | 
145 | ### Niedozwolony atrybut
146 | 
147 | <table>
148 |   <tr>
149 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
158 |   	<td>Usuń atrybut z tagu HTML.</td>
159 |   </tr>
160 | </table>
161 | 
162 | Atrybuty są dozwolonymi elementami, dlatego nie istnieje zamknięta lista wszystkich niedozwolonych atrybutów.
163 | Aby dowiedzieć się, które atrybuty są obsługiwane w przypadku konkretnego tagu, wyszukaj tag HTML, a następnie atrybut `attrs` w [specyfikacji narzędzia AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
164 | 
165 | Oprócz listy dozwolonych atrybutów każdego tagu, wszystkie tagi AMP mogą używać dowolnego atrybutu wymienionego w sekcji `$GLOBAL_ATTRS`. Dozwolone są również wszystkie atrybuty z prefiksem `"data-"`.
166 | 
167 | ### Brak obowiązkowego tekstu lub jest on nieprawidłowy
168 | 
169 | <table>
170 |   <tr>
171 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
180 |   	<td>Dodaj lub popraw obowiązkowy tekst w tagu.</td>
181 |   </tr>
182 | </table>
183 | 
184 | CDATA to dane o treści umieszczone między początkowym i końcowym tagiem HTML, które są aktualnie weryfikowane w celu umieszczenia ich na liście elementów dozwolonych albo niedozwolonych.
185 | Przykłady tagów z obowiązkowymi danymi CDATA:
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 | oraz:
192 | 
193 | [sourcecode:html]
194 | <style amp-custom>
195 | [/sourcecode]
196 | 
197 | Przykłady komunikatów związanych z tym problemem:
198 | 
199 | * „Obowiązkowy schemat stylu (kod JavaScript włączony)”
200 | * „Obowiązkowy schemat stylu (brak skryptu)”
201 | * „Niedozwolony prefiks nazwy klasy CSS -amp-”
202 | * „Niedozwolony atrybut !important w kodzie CSS”
203 | * „Niedozwolony atrybut @charset w kodzie CSS”
204 | * „Niedozwolony atrybut @import w kodzie CSS”
205 | * „Niedozwolony atrybut @namespace w kodzie CSS”
206 | * „Niedozwolony atrybut @supports w kodzie CSS”
207 | * „Niedozwolony atrybut @document w kodzie CSS”
208 | * „Niedozwolony atrybut @page w kodzie CSS”
209 | * „Niedozwolony atrybut @viewport w kodzie CSS”
210 | 
211 | ### Niedozwolony tekst w tagu
212 | 
213 | <table>
214 |    <tr>
215 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
224 |   	<td>Usuń niedozwolony tekst.</td>
225 |   </tr>
226 | </table>
227 | 
228 | Określone dane CSS są niedozwolone w procesie weryfikacji podstawowych reguł CSS stron AMP.
229 | 
230 | Poniżej znajduje się lista niedozwolonych danych CSS (zobacz też atrybut [`blacklisted_cdata_regex` w specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii)):
231 | 
232 | * `"\\.i?-amp-"` („prefiks nazwy klasy CSS -amp-”)
233 | * `"!important"`
234 | * `"charset"`
235 | * `"@import"`
236 | * `"@namespace"`
237 | * `"@document"`
238 | * `"@page"`
239 | * `"@viewport"`
240 | 
241 | ### Niedozwolona właściwość w atrybucie w tagu
242 | 
243 | <table>
244 |    <tr>
245 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
254 |   	<td>Usuń niedozwoloną właściwość w określonym atrybucie.</td>
255 |   </tr>
256 | </table>
257 | 
258 | Ten błąd występuje wówczas, gdy atrybut zawiera niedozwoloną nazwę właściwości.
259 | W tym kontekście termin „właściwość” oznacza strukturalne dane klucza/wartości w atrybucie.
260 | Na przykład atrybuty `width` i `minimum-scale` w tagu `<meta name="viewport content="width=device-width;minimum-scale=1">` są nazwami właściwości.
261 | 
262 | Użycie poniższego tagu spowoduje wygenerowanie błędu DISALLOWED_PROPERTY_IN_ATTR_VALUE:
263 | 
264 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
265 | 
266 | Innym przykładem tagu, który spowoduje wystąpienie błędu, jest:
267 | 
268 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
269 | 
270 | Prawidłowa składnia: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
271 | 
272 | ### Nieprawidłowa wartość właściwości
273 | 
274 | <table>
275 |    <tr>
276 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
285 |   	<td>Popraw wartość właściwości.</td>
286 |   </tr>
287 | </table>
288 | 
289 | Ten błąd występuje wówczas, gdy atrybut zawiera nieprawidłową wartość właściwości.
290 | W tym kontekście termin „właściwość” oznacza strukturalne dane klucza/wartości w atrybucie.
291 | Na przykład atrybuty `device-width` i `1` w tagu `<meta name="viewport content="width=device-width;minimum-scale=1">` są wartościami właściwości.
292 | 
293 | Użycie poniższego tagu spowoduje wystąpienie błędu INVALID_PROPERTY_VALUE_IN_ATTR_VALUE:
294 | 
295 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
296 | 
297 | Innym przykładem tagu, który spowoduje wystąpienie błędu, jest:
298 | 
299 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
300 | 
301 | Prawidłowa składnia: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
302 | 
303 | ### Brak adresu URL
304 | 
305 | <table>
306 |   <tr>
307 |     <td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
316 |     <td>Dodaj prawidłowy adres URL.</td>
317 |   </tr>
318 | </table>
319 | 
320 | Ten błąd występuje w przypadku braku adresu URL w atrybucie, który go wymaga – na przykład wówczas, gdy atrybuty `href` lub `src` są puste.
321 | 
322 | ### Nieprawidłowy adres URL
323 | 
324 | <table>
325 |   <tr>
326 |     <td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
335 |     <td>Popraw adres URL.</td>
336 |   </tr>
337 | </table>
338 | 
339 | Ten błąd występuje wówczas, gdy atrybut zawiera adres URL, ale jest on nieprawidłowy.
340 | 
341 | ### Nieprawidłowy protokół adresu URL
342 | 
343 | <table>
344 |   <tr>
345 |     <td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
354 |     <td>Użyj prawidłowego protokołu. Być może protokół `http` należy zastąpić protokołem `https`.</td>
355 |   </tr>
356 | </table>
357 | 
358 | Ten błąd występuje w przypadku tagów zawierających atrybuty `href` lub `src`, którym trzeba przyporządkować konkretną wartość (konkretny protokół).
359 | Na przykład wiele tagów wymaga protokołu `https`.
360 | 
361 | ### Brak obowiązkowej właściwości w atrybucie
362 | 
363 | <table>
364 |   <tr>
365 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
374 |   	<td>Dodaj brakującą właściwość.</td>
375 |   </tr>
376 | </table>
377 | 
378 | Obecnie ten błąd występuje w przypadku braku poniższych obowiązkowych właściwości:
379 | 
380 | * `content="...ie=..."`
381 | * `content="...width=..."`
382 | * `content="...minimum-scale=..."`
383 | 
384 | Odnoszą się one do oczekiwanych tagów:
385 | 
386 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
387 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
388 | 
389 | ### Wzajemnie wykluczające się atrybuty
390 | 
391 | <table>
392 |   <tr>
393 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
402 |   	<td>Usuń jeden ze wzajemnie wykluczających się atrybutów.</td>
403 |   </tr>
404 | </table>
405 | 
406 | Ten błąd występuje wówczas, gdy tag zawiera oba wzajemnie wykluczające się atrybuty.
407 | Na przykład w poniższych tagach dozwolony jest tylko jeden z wymienionych atrybutów:
408 | 
409 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` albo `src`
410 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` albo `src`
411 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` albo `srcdoc`
412 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` albo `data-videoid`
413 | 
414 | ### Brak obowiązkowego atrybutu z listy
415 | 
416 | <table>
417 |   <tr>
418 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
427 |   	<td>Dodaj brakujący obowiązkowy atrybut z podanej listy atrybutów.</td>
428 |   </tr>
429 | </table>
430 | 
431 | Ten błąd występuje wówczas, gdy w tagu brakuje jednego wymaganego atrybutu.
432 | Na przykład poniższe tagi wymagają jednego z dwóch atrybutów do wyboru:
433 | 
434 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` albo `src`
435 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` albo `src`
436 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` albo `srcdoc`
437 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` albo `data-videoid`
438 | 
439 | ### Niewłaściwy tag nadrzędny
440 | 
441 | <table>
442 |   <tr>
443 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
452 |   	<td>Ustaw tag jako bezpośredni element podrzędny wymaganego tagu nadrzędnego.</td>
453 |   </tr>
454 | </table>
455 | 
456 | Niektóre tagi wymagają bezpośredniego tagu nadrzędnego (w przeciwieństwie do odległego przodka).
457 | Poniżej znajduje się lista wymaganych tagów nadrzędnych dla określonych tagów (w kolejności tag – element nadrzędny):
458 | 
459 | * Tag `!doctype` wymaga tagu nadrzędnego `root`.
460 | * Tag `html` wymaga tagu nadrzędnego `!doctype`.
461 | * Tag `head` wymaga tagu nadrzędnego `html`.
462 | * Tag `body` wymaga tagu nadrzędnego `html`.
463 | * Tag `link` wymaga tagu nadrzędnego `head`.
464 | * Tag `meta` wymaga tagu nadrzędnego `head`.
465 | * Tag `style amp-custom` wymaga tagu nadrzędnego `head`.
466 | * Tag `style` wymaga tagu nadrzędnego `boilerplate (noscript)`.
467 | * Tag `noscript` wymaga tagu nadrzędnego `head`.
468 | * Tag `script` wymaga tagu nadrzędnego `head`.
469 | * Tag `source` wymaga tagu multimediów (`amp-audio`, `amp-video` itd.).
470 | 
471 | ### Niedozwolony przodek tagu
472 | 
473 | <table>
474 |   <tr>
475 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
484 |   	<td>Usuń (albo przenieś) niedozwolony zagnieżdżony tag.</td>
485 |   </tr>
486 | </table>
487 | 
488 | Ten błąd występuje wówczas, gdy tag jest potomkiem innego tagu, który nie przeszedł weryfikacji.
489 | Obecnie jedynym przykładem jest tag `template`, który nie może być zagnieżdżony pod innym tagiem `template`.
490 | 
491 | ### Obowiązkowy przodek tagu
492 | 
493 | <table>
494 |   <tr>
495 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
504 |   	<td>Przenieś tag albo ustaw go jako potomka określonego tagu.</td>
505 |   </tr>
506 | </table>
507 | 
508 | Obowiązkowe tagi potomne są zdefiniowane za pomocą atrybutu `mandatory_ancestor` w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
509 | 
510 | Ten błąd występuje w przypadku, gdy w poniższych tagach brakuje atrybutu `mandatory_ancestor` (w kolejności tag – przodek):
511 | 
512 | * Tag `img` musi być elementem potomnym tagu `noscript`.
513 | * Tag `video` musi być elementem potomnym tagu `noscript`.
514 | * Tag `audio` musi być elementem potomnym tagu `noscript`.
515 | * Tag `noscript` musi być elementem potomnym tagu `body`.
516 | 
517 | ### Obowiązkowy przodek tagu z podpowiedzią
518 | 
519 | <table>
520 |   <tr>
521 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
530 |   	<td>Usuń tag, ustaw go jako element potomny określonego tagu lub zastąp go tagiem z podpowiedzią.</td>
531 |   </tr>
532 | </table>
533 | 
534 | Ten błąd występuje wówczas, gdy dokument AMP zawiera jeden z poniższych tagów, który jest nieprawidłowo zagnieżdżony w jego obowiązkowym tagu nadrzędnym:
535 | 
536 | * Tag `img` nie jest zagnieżdżony w tagu nadrzędnym `noscript`.
537 | * Tag `video` nie jest zagnieżdżony w tagu nadrzędnym `noscript`.
538 | * Tag `audio` nie jest zagnieżdżony w tagu nadrzędnym `noscript`.
539 | * Tag `noscript` nie jest zagnieżdżony w tagu nadrzędnym `body`.
540 | 
541 | ### Zduplikowany unikalny tag
542 | 
543 | <table>
544 |   <tr>
545 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
554 |   	<td>Usuń jeden ze zduplikowanych tagów z dokumentu AMP.</td>
555 |   </tr>
556 | </table>
557 | 
558 | Ten błąd występuje wówczas, gdy dozwolone jest tylko jedno wystąpienie tagu, a dokument zawiera jego duplikat.
559 | 
560 | Znana jest pełna lista unikalnych tagów:
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 | ## Błędy stylu i układu
575 | 
576 | Zanim przejdziemy do omawiania błędów stylu i układu, warto wyjaśnić działanie [stylu](/docs/guides/responsive/style_pages.html) i [układu](/docs/guides/responsive/control_layout.html) na stronach AMP. Strony AMP są stronami HTML, dlatego ich styl jest bardzo podobny do stylu każdej strony HTML.
577 | Istnieją jednak pewne ograniczenia, które mają zagwarantować szybkie wczytywanie się stron, a narzędzie do weryfikacji stron AMP wymusza stosowanie tych ograniczeń.
578 | 
579 | Na stronach AMP układ podlega ściślejszej kontroli.
580 | Każdy wyświetlany na stronie tag wymaga wstępnie określonej wysokości i szerokości, co znacznie usprawnia renderowanie i przewijanie.
581 | Nie oznacza to, że te atrybuty muszą być wpisywane ręcznie.
582 | Niektóre układy przyjmują domyślne wartości, dlatego narzędzie do weryfikacji stron AMP nie będzie generować błędów w ich przypadku.
583 | 
584 | Każdy tag AMP zawiera listę atrybutów `supported_layouts` zdefiniowaną w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
585 | Narzędzie generuje błędy w przypadku nieobsługiwanych układów, a zasady weryfikacji stosuje do układów o wstępnie zdefiniowanych parametrach.
586 | 
587 | ### Zbyt długi arkusz stylów
588 | 
589 | <table>
590 |   <tr>
591 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
600 |   	<td>Zmniejsz rozmiar arkusza stylów tak, by nie przekraczał 50 000 bajtów.</td>
601 |   </tr>
602 | </table>
603 | 
604 | Narzędzie do weryfikacji stron AMP generuje ten błąd, gdy zmierzony rozmiar zawartości stylów w tagu `<style amp-custom>` przekracza limit 50 000 bajtów.
605 | 
606 | ### Błąd składni CSS
607 | 
608 | <table>
609 |    <tr>
610 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
619 |   	<td>Usuń błąd składni CSS.</td>
620 |   </tr>
621 | </table>
622 | 
623 | Ten błąd występuje wówczas, gdy określony tag zawiera błędy składni CSS.
624 | Jeśli nie wiesz, co powoduje ten błąd, spróbuj przeanalizować składnię CSS za pomocą internetowego narzędzia do weryfikacji składni CSS, takiego jak [csslint](http://csslint.net/).
625 | 
626 | ### Błąd składni CSS w określonej regule
627 | 
628 | <table>
629 |   <tr>
630 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
639 |   	<td>Usuń podany błąd składni CSS.</td>
640 |   </tr>
641 | </table>
642 | 
643 | Ten błąd dotyczy reguł ze znakiem @ w składni CSS; standard AMP dopuszcza zaledwie kilka takich reguł w przypadku takiej składni
644 | (zobacz też [specyfikację standardu AMP](/docs/reference/spec.html)).
645 | Na przykład reguła `@import` jest niedozwolona.
646 | Błąd weryfikacji wyraźnie wskazuje nieprawidłową regułę, co ułatwia usuwanie występujących w niej błędów.
647 | 
648 | ### Tag AMP nie obsługuje domniemanego układu
649 | 
650 | <table>
651 |   <tr>
652 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
661 |   	<td>Podaj prawidłowy atrybut układu dla tagu.</td>
662 |   </tr>
663 | </table>
664 | 
665 | Ten błąd występuje wówczas, gdy nie określisz układu dla tagu AMP, a domniemany układ (oparty na szerokości, wysokości i rozmiarach) nie jest obsługiwany.
666 | Sprawdź wartości atrybutu `supported_layout` dla tagu w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
667 | 
668 | Atrybut `layout` określa faktyczne działanie układu.
669 | Więcej informacji na temat działania układu zawiera artykuł pt. [Kontrolowanie układu](/docs/guides/responsive/control_layout.html) oraz [specyfikacja systemowa układu AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
670 | 
671 | **Uwaga:** jeśli nie określisz układu i nie uwzględnisz wartości atrybutu `width` i `height`, układ przyjmie domyślną wartość CONTAINER. Narzędzie do weryfikacji wygeneruje błąd, ponieważ wartość CONTAINER nie jest obsługiwana przez żaden tag AMP.
672 | Aby usunąć błąd, określ układ inny niż CONTAINER lub dodaj wartość `width` i/lub `height`.
673 | 
674 | ### Atrybut niedozwolony przez domniemany układ
675 | 
676 | <table>
677 |   <tr>
678 |     <td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
687 |     <td>Usuń niedozwolony atrybut z tagu albo określ układ, w którym taki atrybut jest dozwolony.</td>
688 |   </tr>
689 | </table>
690 | 
691 | Ten błąd występuje wówczas, gdy nie określisz układu dla tagu AMP, a domniemany układ zawiera niedozwolony atrybut.
692 | Niedozwolone atrybuty typów układów są opisane w [specyfikacji systemowej układu AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
693 | 
694 | ### Określony układ nie jest obsługiwany przez tag AMP
695 | 
696 | <table>
697 |   <tr>
698 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
707 |   	<td>Określ układ, który jest obsługiwany przez tag.</td>
708 |   </tr>
709 | </table>
710 | 
711 | Ten błąd występuje wówczas, gdy określony układ dla tagu nie jest obsługiwany.
712 | Sprawdź wartości atrybutu `supported_layout` dla tagu w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
713 | 
714 | Atrybut `layout` określa faktyczne działanie układu.
715 | Więcej informacji na temat działania układu zawiera artykuł [Kontrolowanie układu](/docs/guides/responsive/control_layout.html) oraz [specyfikacja systemowa układu AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
716 | 
717 | ### Atrybut niedozwolony przez określony układ
718 | 
719 | <table>
720 |   <tr>
721 |     <td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
730 |     <td>Usuń niedozwolony atrybut z tagu albo określ układ, w którym taki atrybut jest dozwolony.</td>
731 |   </tr>
732 | </table>
733 | 
734 | Ten błąd występuje wówczas, gdy określisz układ dla tagu AMP, który zawiera niedozwolony atrybut.
735 | Niedozwolone atrybuty typów układów są opisane w [specyfikacji systemowej układu AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
736 | 
737 | ### Nieprawidłowa wartość dla atrybutu wymaganego przez układ
738 | 
739 | <table>
740 |   <tr>
741 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
750 |   	<td>Ustaw określoną wartość atrybutu.</td>
751 |   </tr>
752 | </table>
753 | 
754 | Ten błąd występuje wówczas, gdy wartość atrybutu jest nieprawidłowa dla określonego układu.
755 | Aby lepiej zrozumieć, co generuje ten błąd, dowiedz się więcej na temat [różnych schematów działania układów](/docs/guides/responsive/control_layout.html#size-and-position-elements).
756 | 
757 | Załóżmy, że układ ma być typu `fixed-height`, a parametry `height` i `width` mają określone wartości liczbowe.
758 | Układ typu `fixed-height` przyjmuje wartość `height`.
759 | Atrybut `width` nie może występować albo musi zostać ustawiony tak, by przyjmował wartość `auto`.
760 | Narzędzie do weryfikacji generuje błąd ATTR_VALUE_REQUIRED_BY_LAYOUT.
761 | 
762 | ### Niespójne jednostki szerokości i wysokości
763 | 
764 | <table>
765 |   <tr>
766 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
775 |   	<td>Użyj spójnych jednostek szerokości i wysokości.</td>
776 |   </tr>
777 | </table>
778 | 
779 | Z wyjątkiem atrybutu `layout=fixed` wysokość i szerokość musi być wyrażona w tych samych jednostkach.
780 | Gdy tak nie jest, występuje ten błąd.
781 | 
782 | Na przykład użycie tagu `<amp-img src="" layout="responsive" width="42px" height="42rem">` spowoduje wygenerowanie poniższego komunikatu o błędzie:
783 | 
784 | Niespójne jednostki szerokości i wysokości w tagu „amp-img” – szerokość jest podana w „px”, a wysokość – w „rem”.
785 | 
786 | ## Błędy związane z użyciem szablonów
787 | 
788 | Strony AMP nie mogą zawierać składni określającej szablony, chyba że taka składnia jest umieszczona w tagu AMP, który z definicji ma zawierać szablony, na przykład [amp-mustache](/docs/reference/extended/amp-mustache.html).
789 | 
790 | Pliki źródłowe mogą zawierać szablony pod warunkiem, że dane wyjściowe wygenerowane z tych plików nie będą zawierać szablonów (zobacz też [Korzystanie z narzędzi do wstępnej obróbki kodu CSS](/docs/guides/responsive/style_pages.html#use-css-preprocessors)).
791 | 
792 | ### Atrybut zawiera składnię szablonu
793 | 
794 | <table>
795 |   <tr>
796 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
805 |   	<td>Usuń składnię szablonu otoczoną nawiasami klamrowymi z atrybutu.</td>
806 |   </tr>
807 | </table>
808 | 
809 | Ten błąd występuje za każdym razem, gdy narzędzie do weryfikacji napotka na [składnię szablonu otoczoną nawiasami klamrowymi](https://mustache.github.io/mustache.5.html) w wartości atrybutu.
810 | 
811 | ### Atrybut zawiera składnię szablonu bez kodów zmiany znaczenia
812 | 
813 | <table>
814 |   <tr>
815 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
824 |   	<td>Użyj kodów zmiany znaczenia składni szablonu otoczonej nawiasami klamrowymi.</td>
825 |   </tr>
826 | </table>
827 | 
828 | Ten błąd występuje za każdym razem, gdy narzędzie do weryfikacji napotka na [składnię szablonu otoczoną nawiasami klamrowymi bez kodów zmiany znaczenia](https://mustache.github.io/mustache.5.html) w wartości atrybutu.
829 | 
830 | ### Atrybut zawiera część szablonu
831 | 
832 | <table>
833 |   <tr>
834 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
843 |   	<td>Usuń część szablonu otoczonego nawiasami klamrowymi.</td>
844 |   </tr>
845 | </table>
846 | 
847 | Ten błąd występuje za każdym razem, gdy narzędzie do weryfikacji napotka na [część szablonu otoczonego nawiasami klamrowymi](https://mustache.github.io/mustache.5.html) w wartości atrybutu.
848 | 
849 | ## Błędy związane z nieużywanymi elementami
850 | 
851 | ### Nieużywany tag
852 | 
853 | <table>
854 |   <tr>
855 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
864 |   	<td>Usuń nieużywany tag.</td>
865 |   </tr>
866 | </table>
867 | 
868 | To ostrzeżenie występuje wówczas, gdy dokument AMP zawiera tag AMP, który wcześniej był poprawny.
869 | Ten komunikat jest tylko ostrzeżeniem, które nie wpływa na poprawność dokumentów AMP.
870 | Aktualnie nie istnieje lista nieużywanych tagów. To ostrzeżenie jest przeznaczone dla elementów, które w przyszłości przestaną być używane.
871 | 
872 | ### Nieużywany atrybut
873 | 
874 | <table>
875 |   <tr>
876 |   	<td class="col-thirty"><strong>Kod</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>Rozwiązanie</strong></td>
885 |   	<td>Zgodnie z właściwą praktyką usuń nieużywany atrybut.</td>
886 |   </tr>
887 | </table>
888 | 
889 | To ostrzeżenie wyświetla się wówczas, gdy dokument AMP zawiera atrybut AMP, który wcześniej był poprawny.
890 | Ten komunikat jest tylko ostrzeżeniem, które nie wpływa na poprawność dokumentów AMP.
891 | 
892 | Aby znaleźć nieużywane atrybuty każdego tagu AMP, wyszukaj ciąg `deprecation` w [specyfikacji narzędzia do weryfikacji stron AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
893 | </body>
894 | </html>
895 | 
```
Page 20/24FirstPrevNextLast