This is page 23 of 24. Use http://codebase.md/cloudflare/docs/imgs/$SOME_URL?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: Erreurs de validation 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 | Pour être valides, les documents AMP ne doivent comprendre aucune erreur de validation.
22 | Le but de ce document est de vous aider à mieux comprendre et à corriger les erreurs de validation que vous rencontrez lorsque vous [validez vos pages AMP](/docs/guides/validate.html).
23 | Pour un aperçu complet des erreurs de validation, consultez les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
24 |
25 | [TOC]
26 |
27 | ## Erreurs de balise HTML et d'attributs AMP
28 |
29 | ### Balise obligatoire manquante
30 |
31 | <table>
32 | <tr>
33 | <td class="col-thirty"><strong>Code</strong></td>
34 | <td>MANDATORY_TAG_MISSING</td>
35 | </tr>
36 | <tr>
37 | <td class="col-thirty"><strong>Format</strong></td>
38 | <td>"The mandatory tag '%1' is missing or incorrect."</td>
39 | </tr>
40 | <tr>
41 | <td class="col-thirty"><strong>Correction</strong></td>
42 | <td>Ajoutez (ou corrigez) la balise HTML obligatoire.</td>
43 | </tr>
44 | </table>
45 |
46 | Les balises suivantes doivent être présentes dans tous les documents AMP :
47 |
48 | * <a name="doctype"></a>`<!doctype html>`
49 | * <a name="html"></a>`<html amp> or <html ⚡>`
50 | * <a name="head"></a>`<head>`
51 | * <a name="canonical"></a>`<link rel="canonical" href="$SOME_URL" />`
52 | * <a name="utf"></a>`<meta charset="utf-8">`
53 | * <a name="viewport"></a>`<meta name="viewport" content="...">`
54 | * <a name="boilerplate"></a>`<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>`
55 | * <a name="ampscript"></a>`<script async src="https://cdn.ampproject.org/v0.js"></script>`
56 | * <a name="body"></a>`<body>`
57 |
58 | Ces balises obligatoires comprennent un champ `mandatory: true` dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii). Elles sont également référencées dans la [spécifications AMP](/docs/reference/spec.html).
59 |
60 | ### Absence d'une balise requise par une autre balise
61 |
62 | <table>
63 | <tr>
64 | <td class="col-thirty"><strong>Code</strong></td>
65 | <td>TAG_REQUIRED_BY_MISSING</td>
66 | </tr>
67 | <tr>
68 | <td class="col-thirty"><strong>Format</strong></td>
69 | <td>"The '%1' tag is missing or incorrect, but required by '%2'."</td>
70 | </tr>
71 | <tr>
72 | <td class="col-thirty"><strong>Correction</strong></td>
73 | <td>Ajoutez (ou corrigez) la balise HTML requise.</td>
74 | </tr>
75 | </table>
76 |
77 | Le validateur génère l'erreur `TAG_REQUIRED_BY_MISSING` lorsqu'il trouve un composant étendu dans le document AMP, mais ne trouve pas le `<script>` équivalent.
78 |
79 | Les [composants étendus](/docs/reference/extended.html) doivent être inclus explicitement dans le document AMP en tant qu'éléments personnalisés.
80 | Pour corriger ces erreurs, accédez à la page de référence du composant étendu, copiez le script nécessaire et collez-le dans la section `<head>` du document AMP.
81 |
82 | ### Balise non autorisée
83 |
84 | <table>
85 | <tr>
86 | <td class="col-thirty"><strong>Code</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>Correction</strong></td>
95 | <td>Supprimez la balise non autorisée.</td>
96 | </tr>
97 | </table>
98 |
99 | Les balises sont ajoutées à la liste blanche. Il n'existe donc pas de liste définitive de toutes les balises interdites, toutefois les [spécifications AMP](/docs/reference/spec.html) définissent dans les grandes lignes l'ensemble de balises non autorisées.
100 |
101 | ### Attribut obligatoire manquant
102 |
103 | <table>
104 | <tr>
105 | <td class="col-thirty"><strong>Code</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>Correction</strong></td>
114 | <td>Ajoutez l'attribut obligatoire à la balise.</td>
115 | </tr>
116 | </table>
117 |
118 | Les attributs obligatoires pour les balises AMP sont définis dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
119 | Il vous suffit de rechercher la balise, de consulter les attributs répertoriés et de vérifier qu'ils sont bien définis sur `mandatory: true`.
120 | Les attributs obligatoires pour chaque balise AMP sont également répertoriés dans les spécifications de la balise.
121 |
122 | ### Valeur d'attribut incorrecte
123 |
124 | <table>
125 | <tr>
126 | <td class="col-thirty"><strong>Code</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>Correction</strong></td>
135 | <td>Remplacez la valeur de l'attribut par une valeur valide.</td>
136 | </tr>
137 | </table>
138 |
139 | Cette erreur indique qu'une balise HTML possède un attribut avec un nom autorisé, mais une valeur interdite.
140 | Ainsi, cette erreur se déclenche fréquemment en cas de valeurs d'URL incorrectes. Toutes les valeurs d'URL (dans les attributs `href` et `src`) doivent correspondre à l'une de ces [valeurs d'attributs possibles](http://www.w3schools.com/tags/att_a_href.asp).
141 |
142 | **IMPORTANT** : De nombreuses valeurs d'URL AMP nécessitent le protocole HTTPS. Si vous obtenez cette erreur et que vous en ignorez la raison, vérifiez les spécifications de la balise AMP concernée pour voir si l'attribut nécessite le protocole HTTPS.
143 |
144 | ### Attribut non autorisé
145 |
146 | <table>
147 | <tr>
148 | <td class="col-thirty"><strong>Code</strong></td>
149 | <td>DISALLOWED_ATTR</td>
150 | </tr>
151 | <tr>
152 | <td class="col-thirty"><strong>Format</strong></td>
153 | <td>"The attribute '%1' may not appear in tag '%2'."</td>
154 | </tr>
155 | <tr>
156 | <td class="col-thirty"><strong>Correction</strong></td>
157 | <td>Supprimez l'attribut de la balise HTML.</td>
158 | </tr>
159 | </table>
160 |
161 | Les attributs sont ajoutés à une liste blanche. Il n'existe donc pas de liste définitive de tous les attributs interdits.
162 | Pour connaître les attributs compatibles avec chaque balise, recherchez la balise HTML, puis `attrs` dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
163 |
164 | En plus d'une liste blanche des attributs spécifiques pour chaque balise, les balises AMP peuvent utiliser tous les attributs ajoutés à la liste blanche dans `$GLOBAL_ATTRS`. Tous les attributs avec le préfixe `"data-"` sont également acceptés.
165 |
166 | ### Texte obligatoire manquant ou incorrect
167 |
168 | <table>
169 | <tr>
170 | <td class="col-thirty"><strong>Code</strong></td>
171 | <td>MANDATORY_CDATA_MISSING_OR_INCORRECT</td>
172 | </tr>
173 | <tr>
174 | <td class="col-thirty"><strong>Format</strong></td>
175 | <td>"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."</td>
176 | </tr>
177 | <tr>
178 | <td class="col-thirty"><strong>Correction</strong></td>
179 | <td>Ajoutez ou corrigez le texte obligatoire dans la balise.</td>
180 | </tr>
181 | </table>
182 |
183 | CDATA désigne les données de contenu figurant entre des balises HTML de début et de fin. L'évaluation de ces données se fait actuellement par le biais de listes blanches et de listes noires.
184 | Les balises avec des données CDATA obligatoires comprennent :
185 |
186 | [sourcecode:html]
187 | <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>
188 | [/sourcecode]
189 |
190 | Et :
191 |
192 | [sourcecode:html]
193 | <style amp-custom>
194 | [/sourcecode]
195 |
196 | Voici des exemples de messages détaillés correspondant à la description ci-dessus :
197 |
198 | * "Mandatory style boilerplate (js enabled)"
199 | * "Mandatory style boilerplate (noscript)"
200 | * "Disallowed -amp- CSS class name prefix"
201 | * "Disallowed !important attribute in CSS"
202 | * "Disallowed @charset in CSS"
203 | * "Disallowed @import in CSS"
204 | * "Disallowed @namespace in CSS"
205 | * "Disallowed @supports in CSS"
206 | * "Disallowed @document in CSS"
207 | * "Disallowed @page in CSS"
208 | * "Disallowed @viewport in CSS"
209 |
210 | ### Texte non autorisé à l'intérieur de la balise
211 |
212 | <table>
213 | <tr>
214 | <td class="col-thirty"><strong>Code</strong></td>
215 | <td>CDATA_VIOLATES_BLACKLIST</td>
216 | </tr>
217 | <tr>
218 | <td class="col-thirty"><strong>Format</strong></td>
219 | <td>"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</td>
220 | </tr>
221 | <tr>
222 | <td class="col-thirty"><strong>Correction</strong></td>
223 | <td>Supprimez le texte non autorisé.</td>
224 | </tr>
225 | </table>
226 |
227 | Des données CSS spécifiques ont été ajoutées à la liste noire pour valider des règles AMP CSS essentielles.
228 |
229 | La liste suivante indique les données CSS sur liste noire (voir également `blacklisted_cdata_regex` dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii)) :
230 |
231 | * `"\\.i?-amp-"` ("Préfixe de nom de classe -amp- CSS")
232 | * `"!important"`
233 | * `"charset"`
234 | * `"@import"`
235 | * `"@namespace"`
236 | * `"@document"`
237 | * `"@page"`
238 | * `"@viewport"`
239 |
240 | ### Propriété non autorisée dans l'attribut d'une balise
241 |
242 | <table>
243 | <tr>
244 | <td class="col-thirty"><strong>Code</strong></td>
245 | <td>DISALLOWED_PROPERTY_IN_ATTR_VALUE</td>
246 | </tr>
247 | <tr>
248 | <td class="col-thirty"><strong>Format</strong></td>
249 | <td>"The property '%1' in attribute '%2' in tag '%3' is disallowed."</td>
250 | </tr>
251 | <tr>
252 | <td class="col-thirty"><strong>Correction</strong></td>
253 | <td>Supprimez la propriété non autorisée dans l'attribut spécifié.</td>
254 | </tr>
255 | </table>
256 |
257 | Cette erreur se produit lorsque le nom d'une propriété à l'intérieur d'un attribut n'est pas autorisé.
258 | Dans ce contexte, le terme propriété désigne les données structurées clé/valeur à l'intérieur d'un attribut.
259 | Par exemple, dans `<meta name="viewport content="width=device-width;minimum-scale=1">`, `width` et `minimum-scale` sont des noms de propriétés.
260 |
261 | Le code suivant génère une erreur DISALLOWED_PROPERTY_IN_ATTR_VALUE :
262 |
263 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
264 |
265 | L'exemple suivant constitue également une erreur :
266 |
267 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
268 |
269 | Il faudrait écrire : `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
270 |
271 | ### Valeur de propriété incorrecte
272 |
273 | <table>
274 | <tr>
275 | <td class="col-thirty"><strong>Code</strong></td>
276 | <td>INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</td>
277 | </tr>
278 | <tr>
279 | <td class="col-thirty"><strong>Format</strong></td>
280 | <td>"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</td>
281 | </tr>
282 | <tr>
283 | <td class="col-thirty"><strong>Correction</strong></td>
284 | <td>Corrigez la valeur de propriété incorrecte.</td>
285 | </tr>
286 | </table>
287 |
288 | Cette erreur se produit lorsque la valeur de la propriété à l'intérieur d'un attribut est incorrecte.
289 | Dans ce contexte, le terme propriété désigne les données structurées clé/valeur à l'intérieur d'un attribut.
290 | Par exemple, dans `<meta name="viewport content="width=device-width;minimum-scale=1">`, `device-width` et `1` sont des valeurs de propriété.
291 |
292 | L'exemple ci-dessous provoque une erreur INVALID_PROPERTY_VALUE_IN_ATTR_VALUE :
293 |
294 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
295 |
296 | L'exemple suivant constitue également une erreur :
297 |
298 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
299 |
300 | Il faudrait écrire : `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
301 |
302 | ### URL manquante
303 |
304 | <table>
305 | <tr>
306 | <td class="col-thirty"><strong>Code</strong></td>
307 | <td>MISSING_URL</td>
308 | </tr>
309 | <tr>
310 | <td class="col-thirty"><strong>Format</strong></td>
311 | <td>"Missing URL for attribute '%1' in tag '%2'."</td>
312 | </tr>
313 | <tr>
314 | <td class="col-thirty"><strong>Correction</strong></td>
315 | <td>Ajoutez l'URL valide.</td>
316 | </tr>
317 | </table>
318 |
319 | Cette erreur se produit en l'absence de l'URL nécessaire à un attribut. Il peut notamment s'agir d'un attribut `href` ou `src` vide.
320 |
321 | ### URL incorrecte
322 |
323 | <table>
324 | <tr>
325 | <td class="col-thirty"><strong>Code</strong></td>
326 | <td>INVALID_URL_PROTOCOL</td>
327 | </tr>
328 | <tr>
329 | <td class="col-thirty"><strong>Format</strong></td>
330 | <td>"Malformed URL '%3' for attribute '%1' in tag '%2'"</td>
331 | </tr>
332 | <tr>
333 | <td class="col-thirty"><strong>Correction</strong></td>
334 | <td>Réparez l'URL rompue.</td>
335 | </tr>
336 | </table>
337 |
338 | Cette erreur se produit lorsqu'un attribut a une URL, mais que cette dernière est incorrecte.
339 |
340 | ### Protocole d'URL incorrect
341 |
342 | <table>
343 | <tr>
344 | <td class="col-thirty"><strong>Code</strong></td>
345 | <td>INVALID_URL_PROTOCOL</td>
346 | </tr>
347 | <tr>
348 | <td class="col-thirty"><strong>Format</strong></td>
349 | <td>Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</td>
350 | </tr>
351 | <tr>
352 | <td class="col-thirty"><strong>Correction</strong></td>
353 | <td>Optez pour un protocole valide. Ainsi, il vous faudra peut-être remplacer `http` par `https`.</td>
354 | </tr>
355 | </table>
356 |
357 | Cette erreur se produit pour les balises dont le `href` ou `src` doivent être définis sur certains protocoles.
358 | Ainsi, de nombreuses balises nécessitent le protocole `https`.
359 |
360 | ### Propriété obligatoire manquante pour l'attribut
361 |
362 | <table>
363 | <tr>
364 | <td class="col-thirty"><strong>Code</strong></td>
365 | <td>MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</td>
366 | </tr>
367 | <tr>
368 | <td class="col-thirty"><strong>Format</strong></td>
369 | <td>"The property '%1' is missing from attribute '%2' in tag '%3'."</td>
370 | </tr>
371 | <tr>
372 | <td class="col-thirty"><strong>Correction</strong></td>
373 | <td>Ajoutez la propriété manquante.</td>
374 | </tr>
375 | </table>
376 |
377 | À l'heure actuelle, cette erreur se produit en l'absence de ces propriétés obligatoires :
378 |
379 | * `content="...ie=..."`
380 | * `content="...width=..."`
381 | * `content="...minimum-scale=..."`
382 |
383 | Elles renvoient à des balises attendues :
384 |
385 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
386 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
387 |
388 | ### Attributs s'excluant mutuellement
389 |
390 | <table>
391 | <tr>
392 | <td class="col-thirty"><strong>Code</strong></td>
393 | <td>MUTUALLY_EXCLUSIVE_ATTRS</td>
394 | </tr>
395 | <tr>
396 | <td class="col-thirty"><strong>Format</strong></td>
397 | <td>"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</td>
398 | </tr>
399 | <tr>
400 | <td class="col-thirty"><strong>Correction</strong></td>
401 | <td>Supprimez l'un des attributs s'excluant mutuellement.</td>
402 | </tr>
403 | </table>
404 |
405 | Cette erreur se produit lorsqu'une balise possède deux attributs s'excluant mutuellement.
406 | Ainsi, un seul de ces attributs est autorisé pour les balises suivantes :
407 |
408 | * [amp-twitter](/docs/reference/extended/amp-twitter.html) : `data-tweetid` ou `src`
409 | * [amp-instagram](/docs/reference/extended/amp-instagram.html) : `data-shortcode` ou `src`
410 | * [amp-iframe](/docs/reference/extended/amp-iframe.html) : `src` ou `srcdoc`
411 | * [amp-youtube](/docs/reference/extended/amp-youtube.html) : `src` ou `data-videoid`
412 |
413 | ### Absence d'attribut obligatoire figurant sur la liste
414 |
415 | <table>
416 | <tr>
417 | <td class="col-thirty"><strong>Code</strong></td>
418 | <td>MANDATORY_ONEOF_ATTR_MISSING</td>
419 | </tr>
420 | <tr>
421 | <td class="col-thirty"><strong>Format</strong></td>
422 | <td>"The tag '%1' is missing a mandatory attribute - pick one of %2." </td>
423 | </tr>
424 | <tr>
425 | <td class="col-thirty"><strong>Correction</strong></td>
426 | <td>Ajoutez l'attribut obligatoire manquant parmi les attributs proposés.</td>
427 | </tr>
428 | </table>
429 |
430 | Cette erreur se produit lorsqu'une balise ne comprend aucun des attributs possibles.
431 | Par exemple, pour les balises suivantes, il faut choisir l'un des deux attributs proposés :
432 |
433 | * [amp-twitter](/docs/reference/extended/amp-twitter.html) : `data-tweetid` ou `src`
434 | * [amp-instagram](/docs/reference/extended/amp-instagram.html) : `data-shortcode` ou `src`
435 | * [amp-iframe](/docs/reference/extended/amp-iframe.html) : `src` ou `srcdoc`
436 | * [amp-youtube](/docs/reference/extended/amp-youtube.html) : `src` ou `data-videoid`
437 |
438 | ### Balise parent incorrecte
439 |
440 | <table>
441 | <tr>
442 | <td class="col-thirty"><strong>Code</strong></td>
443 | <td>WRONG_PARENT_TAG</td>
444 | </tr>
445 | <tr>
446 | <td class="col-thirty"><strong>Format</strong></td>
447 | <td>"The parent tag of tag '%1' is '%2', but it can only be '%3'."</td>
448 | </tr>
449 | <tr>
450 | <td class="col-thirty"><strong>Correction</strong></td>
451 | <td>Faites en sorte que la balise soit un enfant direct du parent requis.</td>
452 | </tr>
453 | </table>
454 |
455 | Des balises spécifiques nécessitent un parent immédiat (par opposition à un ancêtre lointain).
456 | La liste ci-dessous répertorie le parent requis pour des balises spécifiques (balise, parent) :
457 |
458 | * `!doctype` nécessite une balise parent `root`.
459 | * `html` nécessite une balise parent `!doctype`.
460 | * `head` nécessite une balise parent `html`.
461 | * `body` nécessite une balise parent `html`.
462 | * `link` nécessite une balise parent `head`.
463 | * `meta` nécessite une balise parent `head`.
464 | * `style amp-custom` nécessite une balise parent `head`.
465 | * `style` nécessite une balise parent `boilerplate (noscript)`.
466 | * `noscript` nécessite une balise parent `head`.
467 | * `script` nécessite une balise parent `head`.
468 | * `source` nécessite une balise média (`amp-audio`, `amp-video`, etc.).
469 |
470 | ### Balise ancêtre non autorisée
471 |
472 | <table>
473 | <tr>
474 | <td class="col-thirty"><strong>Code</strong></td>
475 | <td>DISALLOWED_TAG_ANCESTOR</td>
476 | </tr>
477 | <tr>
478 | <td class="col-thirty"><strong>Format</strong></td>
479 | <td>"The tag '%1' may not appear as a descendant of tag '%2'."</td>
480 | </tr>
481 | <tr>
482 | <td class="col-thirty"><strong>Correction</strong></td>
483 | <td>Supprimez (ou déplacez) la balise imbriquée non autorisée.</td>
484 | </tr>
485 | </table>
486 |
487 | Cette erreur se produit lorsqu'une balise est un descendant d'une autre balise non validée.
488 | À l'heure actuelle, le seul exemple possible est une balise `template` non imbriquée dans une autre balise `template`.
489 |
490 | ### Balise ancêtre obligatoire
491 |
492 | <table>
493 | <tr>
494 | <td class="col-thirty"><strong>Code</strong></td>
495 | <td>MANDATORY_TAG_ANCESTOR</td>
496 | </tr>
497 | <tr>
498 | <td class="col-thirty"><strong>Format</strong></td>
499 | <td>"The tag '%1' may only appear as a descendant of tag '%2'."</td>
500 | </tr>
501 | <tr>
502 | <td class="col-thirty"><strong>Correction</strong></td>
503 | <td>Supprimez la balise ou faites-en un descendant de la balise spécifique.</td>
504 | </tr>
505 | </table>
506 |
507 | Les descendants obligatoires sont définis dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) comme `mandatory_ancestor`.
508 |
509 | L'erreur se produit en l'absence de `mandatory_ancestor` (balise, ancêtre) pour les balises suivantes :
510 |
511 | * `img` doit être un descendant de `noscript`.
512 | * `video` doit être un descendant de `noscript`.
513 | * `audio` doit être un descendant de `noscript`.
514 | * `noscript` doit être un descendant de `body`.
515 |
516 | ### Balise ancêtre obligatoire avec indicateur
517 |
518 | <table>
519 | <tr>
520 | <td class="col-thirty"><strong>Code</strong></td>
521 | <td>MANDATORY_TAG_ANCESTOR_WITH_HINT</td>
522 | </tr>
523 | <tr>
524 | <td class="col-thirty"><strong>Format</strong></td>
525 | <td>"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</td>
526 | </tr>
527 | <tr>
528 | <td class="col-thirty"><strong>Correction</strong></td>
529 | <td>Supprimez la balise, faites-en un descendant de la balise spécifique ou remplacez-la par la balise avec indicateur.</td>
530 | </tr>
531 | </table>
532 |
533 | L'erreur se produit lorsque l'une des balises suivantes est détectée dans un document AMP, et n'est pas correctement imbriquée dans son parent obligatoire :
534 |
535 | * `img` n'est pas dans le parent `noscript`.
536 | * `video` n'est pas dans le parent `noscript`.
537 | * `audio` n'est pas dans le parent `noscript`.
538 | * `noscript` n'est pas dans le parent `body`.
539 |
540 | ### Balise unique en double
541 |
542 | <table>
543 | <tr>
544 | <td class="col-thirty"><strong>Code</strong></td>
545 | <td>DUPLICATE_UNIQUE_TAG</td>
546 | </tr>
547 | <tr>
548 | <td class="col-thirty"><strong>Format</strong></td>
549 | <td>"The tag '%1' appears more than once in the document."</td>
550 | </tr>
551 | <tr>
552 | <td class="col-thirty"><strong>Correction</strong></td>
553 | <td>Supprimez l'une des balises en double du document AMP.</td>
554 | </tr>
555 | </table>
556 |
557 | Cette erreur se produit lorsqu'une seule instance de la balise est autorisée, et qu'un doublon est détecté.
558 |
559 | Voici la liste complète des balises uniques :
560 |
561 | * `<doctype html>`
562 | * `<html amp>`
563 | * `<head>`
564 | * `<link rel=canonical href=...>`
565 | * `<link rel=amphtml href=...>`
566 | * `<meta charset="utf-8">`
567 | * `<meta viewport>`
568 | * `<style amp-custom>`
569 | * `<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>`
570 | * `<body>`
571 | * `<script src="https://cdn.ampproject.org/v0.js">`
572 |
573 | ## Erreurs de style et de mise en page
574 |
575 | Avant de différencier les erreurs de style et de mise en page, il est important de comprendre comment le [style](/docs/guides/responsive/style_pages.html) et la [mise en page](/docs/guides/responsive/control_layout.html) fonctionnent dans AMP. Étant donné que les pages AMP sont des pages HTML, les styles ressemblent beaucoup à ceux de n'importe quelle page HTML.
576 | Il existe toutefois certaines restrictions visant à assurer un chargement rapide des pages, et le validateur AMP vise à les faire respecter.
577 |
578 | La mise en page est plus contrôlée dans les pages AMP.
579 | Chaque balise affichée sur la page doit avoir une hauteur et une largeur prédéfinies, afin de réduire les difficultés d'affichage et de défilement de la page.
580 | Cela ne signifie pas que vous devez inclure manuellement ces attributs.
581 | Pour certains types de mises en page, le validateur AMP ne génère pas d'erreurs, car il considère que des valeurs par défaut sont utilisées.
582 |
583 | Chaque balise AMP est associée à une liste de `supported_layouts`, telle que définie dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
584 | Le validateur génère des erreurs pour les mises en page non compatibles, et vérifie les règles de validation pour la mise en page prédéfinie.
585 |
586 | ### Feuille de style trop longue
587 |
588 | <table>
589 | <tr>
590 | <td class="col-thirty"><strong>Code</strong></td>
591 | <td>STYLESHEET_TOO_LONG</td>
592 | </tr>
593 | <tr>
594 | <td class="col-thirty"><strong>Format</strong></td>
595 | <td>"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</td>
596 | </tr>
597 | <tr>
598 | <td class="col-thirty"><strong>Correction</strong></td>
599 | <td>Réduisez la taille de la feuille de style à moins de 50 000 octets.</td>
600 | </tr>
601 | </table>
602 |
603 | Le validateur AMP génère cette erreur lorsqu'il calcule que la taille du contenu des styles de `<style amp-custom>` dépasse 50 000 octets.
604 |
605 | ### Erreur de syntaxe CSS
606 |
607 | <table>
608 | <tr>
609 | <td class="col-thirty"><strong>Code</strong></td>
610 | <td>CSS_SYNTAX</td>
611 | </tr>
612 | <tr>
613 | <td class="col-thirty"><strong>Format</strong></td>
614 | <td>"CSS syntax error in tag '%1' - %2."</td>
615 | </tr>
616 | <tr>
617 | <td class="col-thirty"><strong>Correction</strong></td>
618 | <td>Corrigez l'erreur de syntaxe CSS.</td>
619 | </tr>
620 | </table>
621 |
622 | Cette erreur se produit lorsque des erreurs de syntaxe CSS figurent dans la balise spécifiée.
623 | Si vous ne parvenez pas à identifier la source de l'erreur, essayez d'exécuter le CSS par le biais d'un validateur CSS en ligne, par exemple [csslint](http://csslint.net/).
624 |
625 | ### Erreur de syntaxe CSS pour une règle spécifique
626 |
627 | <table>
628 | <tr>
629 | <td class="col-thirty"><strong>Code</strong></td>
630 | <td>CSS_SYNTAX_INVALID_AT_RULE</td>
631 | </tr>
632 | <tr>
633 | <td class="col-thirty"><strong>Format</strong></td>
634 | <td>"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</td>
635 | </tr>
636 | <tr>
637 | <td class="col-thirty"><strong>Correction</strong></td>
638 | <td>Corrigez l'erreur de syntaxe CSS spécifiée.</td>
639 | </tr>
640 | </table>
641 |
642 | Cette erreur renvoie aux règles CSS de type @. AMP n'accepte que certaines de ces règles (voir aussi les [spécifications AMP](/docs/reference/spec.html)).
643 | Par exemple, `@import` est interdit.
644 | L'erreur de validation vous indique précisément la règle incorrecte, ce qui permet de corriger plus facilement la règle concernée.
645 |
646 | ### La mise en page implicite n'est pas compatible avec la balise AMP
647 |
648 | <table>
649 | <tr>
650 | <td class="col-thirty"><strong>Code</strong></td>
651 | <td>IMPLIED_LAYOUT_INVALID</td>
652 | </tr>
653 | <tr>
654 | <td class="col-thirty"><strong>Format</strong></td>
655 | <td>"The implied layout '%1' is not supported by tag '%2'."</td>
656 | </tr>
657 | <tr>
658 | <td class="col-thirty"><strong>Correction</strong></td>
659 | <td>Fournissez un attribut de mise en page valide pour la balise.</td>
660 | </tr>
661 | </table>
662 |
663 | Cette erreur se produit lorsque vous ne spécifiez pas de mise en page pour la balise AMP, et que la mise en page implicite (en fonction de la largeur, de la hauteur et de la taille) n'est pas acceptée.
664 | Vérifiez les valeurs `supported_layout` pour la balise dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
665 |
666 | Le comportement de la mise en page est déterminé par l'attribut `layout`.
667 | Pour en savoir plus sur la mise en page, consultez la page d'aide relative au [contrôle de la mise en page](/docs/guides/responsive/control_layout.html), ainsi que les [spécifications du système de mise en page AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
668 |
669 | **Remarque** : Si vous ne spécifiez pas de mise en page et si vous n'incluez pas les valeurs `width` et `height`, la mise en page par défaut est de type CONTAINER. Le validateur génère une erreur, car le format CONTAINER n'est compatible avec aucune balise AMP.
670 | Spécifiez une mise en page autre que CONTAINER, ou ajoutez une valeur `width` ou `height` pour corriger l'erreur.
671 |
672 | ### Attribut non autorisé par la mise en page implicite
673 |
674 | <table>
675 | <tr>
676 | <td class="col-thirty"><strong>Code</strong></td>
677 | <td>ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</td>
678 | </tr>
679 | <tr>
680 | <td class="col-thirty"><strong>Format</strong></td>
681 | <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
682 | </tr>
683 | <tr>
684 | <td class="col-thirty"><strong>Correction</strong></td>
685 | <td>Supprimez l'attribut non autorisé de la balise ou spécifiez une mise en page qui l'accepte.</td>
686 | </tr>
687 | </table>
688 |
689 | Cette erreur se produit lorsque vous ne spécifiez pas de mise en page pour la balise AMP et que la mise en page implicite contient un attribut non autorisé.
690 | Les attributs interdits selon les types de mises en page sont décrits dans la [spécification du système de mise en page AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
691 |
692 | ### La mise en page spécifiée n'est pas compatible avec la balise AMP
693 |
694 | <table>
695 | <tr>
696 | <td class="col-thirty"><strong>Code</strong></td>
697 | <td>SPECIFIED_LAYOUT_INVALID</td>
698 | </tr>
699 | <tr>
700 | <td class="col-thirty"><strong>Format</strong></td>
701 | <td>"The specified layout '%1' is not supported by tag '%2'."</td>
702 | </tr>
703 | <tr>
704 | <td class="col-thirty"><strong>Correction</strong></td>
705 | <td>Spécifiez une mise en page compatible avec la balise.</td>
706 | </tr>
707 | </table>
708 |
709 | Cette erreur se produit lorsque la mise en page spécifiée pour la balise n'est pas acceptée.
710 | Vérifiez les valeurs `supported_layout` pour la balise dans les [spécifications du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
711 |
712 | Le comportement de la mise en page est déterminé par l'attribut `layout`.
713 | Pour en savoir plus sur la mise en page, consultez la page d'aide relative au [contrôle de la mise en page](/docs/guides/responsive/control_layout.html), ainsi que les [spécifications du système de mise en page AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
714 |
715 | ### Attribut non autorisé par la mise en page spécifiée
716 |
717 | <table>
718 | <tr>
719 | <td class="col-thirty"><strong>Code</strong></td>
720 | <td>ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</td>
721 | </tr>
722 | <tr>
723 | <td class="col-thirty"><strong>Format</strong></td>
724 | <td>"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</td>
725 | </tr>
726 | <tr>
727 | <td class="col-thirty"><strong>Correction</strong></td>
728 | <td>Supprimez l'attribut non autorisé de la balise ou spécifiez une mise en page qui l'accepte.</td>
729 | </tr>
730 | </table>
731 |
732 | Cette erreur se produit lorsque vous spécifiez une mise en page pour la balise AMP et que la mise en page contient un attribut non autorisé.
733 | Les attributs interdits selon les types de mises en page sont décrits dans la [spécification du système de mise en page AMP HTML](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md).
734 |
735 | ### Valeur incorrecte pour l'attribut requis par la mise en page
736 |
737 | <table>
738 | <tr>
739 | <td class="col-thirty"><strong>Code</strong></td>
740 | <td>ATTR_VALUE_REQUIRED_BY_LAYOUT</td>
741 | </tr>
742 | <tr>
743 | <td class="col-thirty"><strong>Format</strong></td>
744 | <td>"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</td>
745 | </tr>
746 | <tr>
747 | <td class="col-thirty"><strong>Correction</strong></td>
748 | <td>Définissez l'attribut sur la valeur spécifiée.</td>
749 | </tr>
750 | </table>
751 |
752 | Cette erreur se produit lorsque la valeur de l'attribut est incorrecte pour la mise en page spécifiée.
753 | Pour comprendre ce qui déclenche cette erreur, vous devez vous familiariser avec les [différents comportements des mises en page](/docs/guides/responsive/control_layout.html#size-and-position-elements).
754 |
755 | Par exemple, vous définissez la mise en page sur `fixed-height` et vous intégrez des valeurs numériques pour `height` et `width`.
756 | La mise en page `fixed-height` utilise une valeur `height`.
757 | L'attribut `width` ne doit pas être présent ou doit être défini sur `auto`.
758 | Le validateur génère l'erreur ATTR_VALUE_REQUIRED_BY_LAYOUT.
759 |
760 | ### Unités de hauteur et de largeur incohérentes
761 |
762 | <table>
763 | <tr>
764 | <td class="col-thirty"><strong>Code</strong></td>
765 | <td>INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</td>
766 | </tr>
767 | <tr>
768 | <td class="col-thirty"><strong>Format</strong></td>
769 | <td>"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</td>
770 | </tr>
771 | <tr>
772 | <td class="col-thirty"><strong>Correction</strong></td>
773 | <td>Indiquez des unités de hauteur et de largeur cohérentes.</td>
774 | </tr>
775 | </table>
776 |
777 | À l'exception de `layout=fixed`, les attributs de largeur et de hauteur doivent être exprimés dans la même unité.
778 | Dans le cas contraire, cette erreur est générée.
779 |
780 | Par exemple, `<amp-img src="" layout="responsive" width="42px" height="42rem">` entraîne le message d'erreur suivant :
781 |
782 | "La balise 'amp-img' contient des unités incohérentes pour la largeur et la hauteur. La largeur est indiquée en 'px', alors que la hauteur est indiquée en 'rem'."
783 |
784 | ## Erreurs de création de modèles
785 |
786 | Les pages AMP ne peuvent pas inclure de syntaxe de création de modèles, sauf si cette syntaxe est comprise dans une balise AMP spécialement conçue pour intégrer des modèles, par exemple [amp-mustache](/docs/reference/extended/amp-mustache.html).
787 |
788 | Vous pouvez inclure des modèles dans vos fichiers source, tant que le fichier de sortie ne contient pas les modèles (voir aussi [Utiliser des préprocesseurs CSS](/docs/guides/responsive/style_pages.html#use-css-preprocessors)).
789 |
790 | ### L'attribut contient une syntaxe de modèle
791 |
792 | <table>
793 | <tr>
794 | <td class="col-thirty"><strong>Code</strong></td>
795 | <td>TEMPLATE_IN_ATTR_NAME</td>
796 | </tr>
797 | <tr>
798 | <td class="col-thirty"><strong>Format</strong></td>
799 | <td>"Mustache template syntax in attribute name '%1' in tag '%2'."</td>
800 | </tr>
801 | <tr>
802 | <td class="col-thirty"><strong>Correction</strong></td>
803 | <td>Supprimez la syntaxe de modèle Mustache de l'attribut.</td>
804 | </tr>
805 | </table>
806 |
807 | Cette erreur se produit à chaque fois que le validateur trouve une [syntaxe de modèle Mustache](https://mustache.github.io/mustache.5.html) dans une valeur d'attribut.
808 |
809 | ### L'attribut contient une syntaxe de modèle sans caractère d'échappement
810 |
811 | <table>
812 | <tr>
813 | <td class="col-thirty"><strong>Code</strong></td>
814 | <td>UNESCAPED_TEMPLATE_IN_ATTR_VALUE</td>
815 | </tr>
816 | <tr>
817 | <td class="col-thirty"><strong>Format</strong></td>
818 | <td>"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</td>
819 | </tr>
820 | <tr>
821 | <td class="col-thirty"><strong>Correction</strong></td>
822 | <td>Ajoutez un caractère d'échappement au modèle Mustache.</td>
823 | </tr>
824 | </table>
825 |
826 | Cette erreur se produit à chaque fois que le validateur trouve une [syntaxe de modèle Mustache sans caractère d'échappement](https://mustache.github.io/mustache.5.html) dans une valeur d'attribut.
827 |
828 | ### L'attribut contient un extrait de modèle
829 |
830 | <table>
831 | <tr>
832 | <td class="col-thirty"><strong>Code</strong></td>
833 | <td>TEMPLATE_PARTIAL_IN_ATTR_VALUE</td>
834 | </tr>
835 | <tr>
836 | <td class="col-thirty"><strong>Format</strong></td>
837 | <td>"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</td>
838 | </tr>
839 | <tr>
840 | <td class="col-thirty"><strong>Correction</strong></td>
841 | <td>Supprimez l'extrait de modèle Mustache.</td>
842 | </tr>
843 | </table>
844 |
845 | Cette erreur se produit à chaque fois que le validateur trouve un [extrait de modèle Mustache](https://mustache.github.io/mustache.5.html) dans une valeur d'attribut.
846 |
847 | ## Erreurs d'obsolescence
848 |
849 | ### Balise obsolète
850 |
851 | <table>
852 | <tr>
853 | <td class="col-thirty"><strong>Code</strong></td>
854 | <td>DEPRECATED_TAG</td>
855 | </tr>
856 | <tr>
857 | <td class="col-thirty"><strong>Format</strong></td>
858 | <td>No error message defined as yet (no deprecated tags).</td>
859 | </tr>
860 | <tr>
861 | <td class="col-thirty"><strong>Correction</strong></td>
862 | <td>Supprimez la balise obsolète.</td>
863 | </tr>
864 | </table>
865 |
866 | Cet avertissement s'affiche lorsqu'une balise AMP valide par le passé se trouve dans le document AMP.
867 | Il s'agit seulement d'un avertissement ; les documents AMP présentant des avertissements restent valides.
868 | Aucune balise obsolète n'existe actuellement. L'avertissement concernera les obsolescences futures.
869 |
870 | ### Attribut obsolète
871 |
872 | <table>
873 | <tr>
874 | <td class="col-thirty"><strong>Code</strong></td>
875 | <td>DEPRECATED_ATTR</td>
876 | </tr>
877 | <tr>
878 | <td class="col-thirty"><strong>Format</strong></td>
879 | <td>"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</td>
880 | </tr>
881 | <tr>
882 | <td class="col-thirty"><strong>Correction</strong></td>
883 | <td>Nous vous conseillons de supprimer les attributs obsolètes.</td>
884 | </tr>
885 | </table>
886 |
887 | Cet avertissement s'affiche lorsqu'un attribut AMP valide par le passé se trouve dans le document AMP.
888 | Il s'agit seulement d'un avertissement ; les documents AMP présentant des avertissements restent valides.
889 |
890 | Identifiez les attributs obsolètes pour chaque balise AMP en recherchant `deprecation` dans la [spécification du validateur AMP](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii).
891 | </body>
892 | </html>
893 |
```
--------------------------------------------------------------------------------
/content/docs/reference/[email protected]:
--------------------------------------------------------------------------------
```markdown
1 | ---
2 | $title: AMP Doğrulama Hataları
3 | ---
4 |
5 | Geçerli AMP dokümanları hiçbir doğrulama hatası içermemelidir.
6 | Bu dokümanın amacı, [AMP sayfalarınızı doğrularken](/docs/guides/validate.html) karşılaştığınız doğrulama hatalarını daha iyi anlamanıza ve düzeltmenize yardımcı olmaktır.
7 | Doğrulama hatalarıyla ilgili eksiksiz bir genel bakış için [AMP doğrulayıcı spesifikasyonuna](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) bakın.
8 |
9 | [TOC]
10 |
11 | ## AMP HTML etiketi ve öznitelik hataları
12 |
13 | ### Zorunlu etiket eksik
14 |
15 | <table>
16 | <tr>
17 | <td class="col-thirty"><strong>Kod</strong></td>
18 | <td><span class="notranslate">MANDATORY_TAG_MISSING</span></td>
19 | </tr>
20 | <tr>
21 | <td class="col-thirty"><strong>Biçim</strong></td>
22 | <td><span class="notranslate">"The mandatory tag '%1' is missing or incorrect."</span></td>
23 | </tr>
24 | <tr>
25 | <td class="col-thirty"><strong>Düzeltme</strong></td>
26 | <td>Zorunlu HTML etiketini ekleyin (veya düzeltin).</td>
27 | </tr>
28 | </table>
29 |
30 | Tüm AMP dokümanlarında aşağıdaki etiketler bulunmalıdır:
31 |
32 | * <a name="doctype"></a>`<!doctype html>`
33 | * <a name="html"></a>`<html amp> or <html ⚡>`
34 | * <a name="head"></a>`<head>`
35 | * <a name="canonical"></a>`<link rel="canonical" href="$SOME_URL" />`
36 | * <a name="utf"></a>`<meta charset="utf-8">`
37 | * <a name="viewport"></a>`<meta name="viewport" content="...">`
38 | * <a name="boilerplate"></a>`<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>`
39 | * <a name="ampscript"></a>`<script async src="https://cdn.ampproject.org/v0.js"></script>`
40 | * <a name="body"></a>`<body>`
41 |
42 | Bu zorunlu etiketlerin [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) bir `mandatory: true` alanı olur; bunlara [AMP spesifikasyonunda](/docs/reference/spec.html) da başvuruda bulunulur.
43 |
44 | ### Başka bir etiketin gerektirdiği etiket eksik
45 |
46 | <table>
47 | <tr>
48 | <td class="col-thirty"><strong>Kod</strong></td>
49 | <td><span class="notranslate">TAG_REQUIRED_BY_MISSING</span></td>
50 | </tr>
51 | <tr>
52 | <td class="col-thirty"><strong>Biçim</strong></td>
53 | <td><span class="notranslate">"The '%1' tag is missing or incorrect, but required by '%2'."</span></td>
54 | </tr>
55 | <tr>
56 | <td class="col-thirty"><strong>Düzeltme</strong></td>
57 | <td>Gerekli HTML etiketini ekleyin (veya düzeltin).</td>
58 | </tr>
59 | </table>
60 |
61 | Doğrulayıcı, AMP dokümanında genişletilmiş bir bileşen bulduğunda `TAG_REQUIRED_BY_MISSING` hatasını bildirir, ancak `<script>` eşdeğerini bulmaz.
62 |
63 | [Genişletilmiş bileşenlerin](/docs/reference/extended.html), AMP dokümanına açık bir şekilde özel öğe olarak eklenmeleri gerekir.
64 | Bu hataları düzeltmek için genişletilmiş bileşenin referans sayfasına gidin, gerekli komut dosyasını kopyalayın ve AMP dokümanı `<head>` etiketine yapıştırın.
65 |
66 | ### İzin verilmeyen etiket
67 |
68 | <table>
69 | <tr>
70 | <td class="col-thirty"><strong>Kod</strong></td>
71 | <td><span class="notranslate">DISALLOWED_TAG</span></td>
72 | </tr>
73 | <tr>
74 | <td class="col-thirty"><strong>Biçim</strong></td>
75 | <td><span class="notranslate">"The tag '%1' is disallowed."</span></td>
76 | </tr>
77 | <tr>
78 | <td class="col-thirty"><strong>Düzeltme</strong></td>
79 | <td>İzin verilmeyen etiketi kaldırın.</td>
80 | </tr>
81 | </table>
82 |
83 | Etiketler beyaz listede yer alır, bu yüzden izin verilmeyen tüm etiketlerin tanımlandığı bir liste yoktur; ancak, izin verilmeyen etiketler grubu [AMP spesifikasyonunda](/docs/reference/spec.html) geniş bir şekilde tanımlanmaktadır.
84 |
85 | ### Zorunlu öznitelik eksik
86 |
87 | <table>
88 | <tr>
89 | <td class="col-thirty"><strong>Kod</strong></td>
90 | <td><span class="notranslate">MANDATORY_ATTR_MISSING</span></td>
91 | </tr>
92 | <tr>
93 | <td class="col-thirty"><strong>Biçim</strong></td>
94 | <td><span class="notranslate">"The mandatory attribute '%1' is missing in tag '%2'."</span></td>
95 | </tr>
96 | <tr>
97 | <td class="col-thirty"><strong>Düzeltme</strong></td>
98 | <td>Zorunlu özniteliği etikete ekleyin.</td>
99 | </tr>
100 | </table>
101 |
102 | AMP etiketlerine ilişkin zorunlu öznitelikler [AMP'nin doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) tanımlanmıştır.
103 | Etiketi aramanız, listelenen öznitelikleri görüntüleyip `mandatory: true` alanını kontrol etmeniz yeterlidir.
104 | Her bir AMP etiketinin zorunlu öznitelikleri etiketin spesifikasyonu içinde de listelenir.
105 |
106 | ### Geçersiz öznitelik değeri
107 |
108 | <table>
109 | <tr>
110 | <td class="col-thirty"><strong>Kod</strong></td>
111 | <td><span class="notranslate">INVALID_ATTR_VALUE</span></td>
112 | </tr>
113 | <tr>
114 | <td class="col-thirty"><strong>Biçim</strong></td>
115 | <td><span class="notranslate">"The attribute '%1' in tag '%2' is set to the invalid value '%3'."</span></td>
116 | </tr>
117 | <tr>
118 | <td class="col-thirty"><strong>Düzeltme</strong></td>
119 | <td>Öznitelik değerini geçerli bir değerle düzeltin.</td>
120 | </tr>
121 | </table>
122 |
123 | Bu hata, bir HTML etiketinin izin verilen bir ada, ancak izin verilmeyen bir değere sahip bir özniteliğinin olduğunu belirtir.
124 | Örneğin, yaygın şekilde bu hatayı tetikleyen şeylerden biri URL'lere ilişkin geçersiz değerlerdir. Tüm URL değerlerinin (`href` ve `src` özniteliklerindeki), bu [olası öznitelik değerlerinin](http://www.w3schools.com/tags/att_a_href.asp) biriyle eşleşmesi gerekir.
125 |
126 | <strong>ÖNEMLİ:</strong> AMP'deki birçok URL değeri HTTPS kullanılmasını gerektirir. Bu hatayı alıyorsanız ve neden olduğundan emin değilseniz özniteliğin HTTPS gerektirip gerektirmediğini öğrenmek için ilgili AMP etiketinin spesifikasyonunu kontrol edin.
127 |
128 | ### İzin verilmeyen öznitelik
129 |
130 | <table>
131 | <tr>
132 | <td class="col-thirty"><strong>Kod</strong></td>
133 | <td><span class="notranslate">DISALLOWED_ATTR</span></td>
134 | </tr>
135 | <tr>
136 | <td class="col-thirty"><strong>Biçim</strong></td>
137 | <td><span class="notranslate">"The attribute '%1' may not appear in tag '%2'."</span></td>
138 | </tr>
139 | <tr>
140 | <td class="col-thirty"><strong>Düzeltme</strong></td>
141 | <td>Özniteliği HTML etiketinden kaldırın.</td>
142 | </tr>
143 | </table>
144 |
145 | Öznitelikler beyaz listede yer alır, bu yüzden izin verilmeyen tüm özniteliklerin tanımlandığı bir liste yoktur.
146 | Belirli bir etikete ilişkin desteklenen öznitelikleri kontrol etmek için HTML etiketini ve ardından [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) `attrs` özniteliğini arayın.
147 |
148 | Her bir etikete ilişkin belirli özniteliklerin yer aldığı beyaz listeye ek olarak, tüm AMP etiketleri `$GLOBAL_ATTRS` altında beyaz listeye eklenen tüm öznitelikleri kullanabilir; `"data-"` önekli tüm öznitelikler de beyaz listede yer alır.
149 |
150 | ### Zorunlu metin eksik veya yanlış
151 |
152 | <table>
153 | <tr>
154 | <td class="col-thirty"><strong>Kod</strong></td>
155 | <td><span class="notranslate">MANDATORY_CDATA_MISSING_OR_INCORRECT</span></td>
156 | </tr>
157 | <tr>
158 | <td class="col-thirty"><strong>Biçim</strong></td>
159 | <td><span class="notranslate">"The mandatory text (CDATA) inside tag '%1' is missing or incorrect."</span></td>
160 | </tr>
161 | <tr>
162 | <td class="col-thirty"><strong>Düzeltme</strong></td>
163 | <td>Zorunlu metni etikete ekleyin veya etiket içindeki zorunlu metni düzeltin.</td>
164 | </tr>
165 | </table>
166 |
167 | CDATA, başlangıç ve bitiş HTML etiketi arasındaki içerik verisidir ve şu anda hem beyaz listeler hem de kara listelerle değerlendirilmektedir.
168 | Zorunlu CDATA içeren etiketler şunlardır:
169 |
170 | [sourcecode:html]
171 | <style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
172 | [/sourcecode]
173 |
174 | ve
175 |
176 | [sourcecode:html]
177 | <style amp-custom>
178 | [/sourcecode]
179 |
180 | Buna ilişkin ayrıntılı ileti aşağıdakilerden biri olabilir:
181 |
182 | * "Zorunlu stil standart metni (js etkin)"
183 | * "Zorunlu stil standart metni (noscript)"
184 | * "İzin verilmeyen -amp- CSS sınıf adı öneki"
185 | * "CSS'de izin verilmeyen !important özelliği"
186 | * "CSS'de izin verilmeyen @charset"
187 | * "CSS'de izin verilmeyen @import"
188 | * "CSS'de izin verilmeyen @namespace"
189 | * "CSS'de izin verilmeyen @supports"
190 | * "CSS'de izin verilmeyen @document"
191 | * "CSS'de izin verilmeyen @page"
192 | * "CSS'de izin verilmeyen @viewport"
193 |
194 | ### Etiket içinde izin verilmeyen metin
195 |
196 | <table>
197 | <tr>
198 | <td class="col-thirty"><strong>Kod</strong></td>
199 | <td><span class="notranslate">CDATA_VIOLATES_BLACKLIST</span></td>
200 | </tr>
201 | <tr>
202 | <td class="col-thirty"><strong>Biçim</strong></td>
203 | <td><span class="notranslate">"The text (CDATA) inside tag '%1' matches '%2', which is disallowed."</span></td>
204 | </tr>
205 | <tr>
206 | <td class="col-thirty"><strong>Düzeltme</strong></td>
207 | <td>İzin verilmeyen metni kaldırın.</td>
208 | </tr>
209 | </table>
210 |
211 | Belirli CSS verileri, önemli CSS AMP kurallarını doğrulamak için kara listeye eklenmiştir.
212 |
213 | Aşağıda, kara listeye alınan CSS verilerinin listesini görebilirsiniz (ayrıca, [AMP doğrulayıcı spesifikasyonunda `blacklisted_cdata_regex` öğesine de bakın](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii)):
214 |
215 | * `"\\.i?-amp-"` ("CSS -amp- sınıf adı öneki")
216 | * `"!important"`
217 | * `"charset"`
218 | * `"@import"`
219 | * `"@namespace"`
220 | * `"@document"`
221 | * `"@page"`
222 | * `"@viewport"`
223 |
224 | ### Etiketteki özniteliğin içinde izin verilmeyen özellik
225 |
226 | <table>
227 | <tr>
228 | <td class="col-thirty"><strong>Kod</strong></td>
229 | <td><span class="notranslate">DISALLOWED_PROPERTY_IN_ATTR_VALUE</span></td>
230 | </tr>
231 | <tr>
232 | <td class="col-thirty"><strong>Biçim</strong></td>
233 | <td><span class="notranslate">"The property '%1' in attribute '%2' in tag '%3' is disallowed."</span></td>
234 | </tr>
235 | <tr>
236 | <td class="col-thirty"><strong>Düzeltme</strong></td>
237 | <td>Belirtilen öznitelikteki izin verilmeyen özelliği kaldırın.</td>
238 | </tr>
239 | </table>
240 |
241 | Bu hata, bir özniteliğin içindeki özellik adına izin verilmediğinde ortaya çıkar.
242 | Bu bağlamdaki terim özelliği, bir öznitelik içindeki yapısal anahtar/değer verisi anlamına gelir.
243 | Örneğin, `<meta name="viewport content="width=device-width;minimum-scale=1">` etiketindeki `width` ve `minimum-scale` özellik adlarıdır.
244 |
245 | Aşağıdaki etiket, bir DISALLOWED_PROPERTY_IN_ATTR_VALUE hatasıyla sonuçlanır:
246 |
247 | `<meta name="viewport content="width=device-width;invalidfoo=1">`
248 |
249 | Başka bir örnek olarak, aşağıdaki etiket bir hatayla sonuçlanır:
250 |
251 | `<meta http-equiv="X-UA-Compatible" content="invalidfoo=edge">`
252 |
253 | Şu şekilde olmalıdır: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`.
254 |
255 | ### Geçersiz özellik değeri
256 |
257 | <table>
258 | <tr>
259 | <td class="col-thirty"><strong>Kod</strong></td>
260 | <td><span class="notranslate">INVALID_PROPERTY_VALUE_IN_ATTR_VALUE</span></td>
261 | </tr>
262 | <tr>
263 | <td class="col-thirty"><strong>Biçim</strong></td>
264 | <td><span class="notranslate">"The property '%1' in attribute '%2' in tag '%3' is set to '%4', which is invalid."</span></td>
265 | </tr>
266 | <tr>
267 | <td class="col-thirty"><strong>Düzeltme</strong></td>
268 | <td>Geçersiz özellik değerini düzeltin.</td>
269 | </tr>
270 | </table>
271 |
272 | Bu hata, bir öznitelik içindeki özellik değeri geçersiz olduğunda ortaya çıkar.
273 | Bu bağlamdaki terim özelliği, bir öznitelik içindeki yapısal anahtar/değer verisi anlamına gelir.
274 | Örneğin, `<meta name="viewport content="width=device-width;minimum-scale=1">` etiketindeki `device-width` ve `1` özellik değerleridir.
275 |
276 | Aşağıdaki kod, bir INVALID_PROPERTY_VALUE_IN_ATTR_VALUE hatasıyla sonuçlanır:
277 |
278 | `<meta name=viewport content="width=device-width;minimum-scale=invalidfoo">`
279 |
280 | Başka bir örnek olarak, aşağıdaki etiket bir hatayla sonuçlanır:
281 |
282 | `<meta http-equiv="X-UA-Compatible" content="ie=invalidfoo">`
283 |
284 | Şu şekilde olmalıdır: `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
285 |
286 | ### Eksik URL
287 |
288 | <table>
289 | <tr>
290 | <td class="col-thirty"><strong>Kod</strong></td>
291 | <td><span class="notranslate">MISSING_URL</span></td>
292 | </tr>
293 | <tr>
294 | <td class="col-thirty"><strong>Biçim</strong></td>
295 | <td><span class="notranslate">"Missing URL for attribute '%1' in tag '%2'."</span></td>
296 | </tr>
297 | <tr>
298 | <td class="col-thirty"><strong>Düzeltme</strong></td>
299 | <td>Geçerli URL'yi ekleyin.</td>
300 | </tr>
301 | </table>
302 |
303 | Bu hata, URL gerektiren bir öznitelikte URL eksikse (ör. boş bir `href` veya `src` özniteliği) ortaya çıkar.
304 |
305 | ### Geçersiz URL
306 |
307 | <table>
308 | <tr>
309 | <td class="col-thirty"><strong>Kod</strong></td>
310 | <td><span class="notranslate">INVALID_URL_PROTOCOL</span></td>
311 | </tr>
312 | <tr>
313 | <td class="col-thirty"><strong>Biçim</strong></td>
314 | <td><span class="notranslate">"Malformed URL '%3' for attribute '%1' in tag '%2'"</span></td>
315 | </tr>
316 | <tr>
317 | <td class="col-thirty"><strong>Düzeltme</strong></td>
318 | <td>Bozuk URL'yi düzeltin.</td>
319 | </tr>
320 | </table>
321 |
322 | Bu hata, bir özniteliğin URL'si varsa, ancak URL geçersizse ortaya çıkar.
323 |
324 | ### Geçersiz URL protokolü
325 |
326 | <table>
327 | <tr>
328 | <td class="col-thirty"><strong>Kod</strong></td>
329 | <td><span class="notranslate">INVALID_URL_PROTOCOL</span></td>
330 | </tr>
331 | <tr>
332 | <td class="col-thirty"><strong>Biçim</strong></td>
333 | <td><span class="notranslate">Invalid URL protocol '%3:' for attribute '%1' in tag '%2'.</span></td>
334 | </tr>
335 | <tr>
336 | <td class="col-thirty"><strong>Düzeltme</strong></td>
337 | <td>Geçerli bir protokolle değiştirin; örneğin, `http` protokolünün `https` olması gerekiyor olabilir.</td>
338 | </tr>
339 | </table>
340 |
341 | Bu hata, `href` veya `src` özniteliğinin belirli protokollere atanması gereken etiketler için belirtilir.
342 | Örneğin, birçok etiket `https` gerektirir.
343 |
344 | ### Öznitelikte zorunlu özellik eksik
345 |
346 | <table>
347 | <tr>
348 | <td class="col-thirty"><strong>Kod</strong></td>
349 | <td><span class="notranslate">MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE</span></td>
350 | </tr>
351 | <tr>
352 | <td class="col-thirty"><strong>Biçim</strong></td>
353 | <td><span class="notranslate">"The property '%1' is missing from attribute '%2' in tag '%3'."</span></td>
354 | </tr>
355 | <tr>
356 | <td class="col-thirty"><strong>Düzeltme</strong></td>
357 | <td>Eksik özelliği ekleyin.</td>
358 | </tr>
359 | </table>
360 |
361 | Şu anda bu hata, şu zorunlu özellikler eksikse ortaya çıkmaktadır:
362 |
363 | * `content="...ie=..."`
364 | * `content="...width=..."`
365 | * `content="...minimum-scale=..."`
366 |
367 | Bunlar beklenen etiketlere başvuruda bulunur:
368 |
369 | * `<meta http-equiv="X-UA-Compatible" content="ie=edge">`
370 | * `<meta name=viewport content="width=device-width;minimum-scale=1">`
371 |
372 | ### Aynı anda kullanılamayan (ayrışık) öznitelikler
373 |
374 | <table>
375 | <tr>
376 | <td class="col-thirty"><strong>Kod</strong></td>
377 | <td><span class="notranslate">MUTUALLY_EXCLUSIVE_ATTRS</span></td>
378 | </tr>
379 | <tr>
380 | <td class="col-thirty"><strong>Biçim</strong></td>
381 | <td><span class="notranslate">"Mutually exclusive attributes encountered in tag '%1' - pick one of %2."</span></td>
382 | </tr>
383 | <tr>
384 | <td class="col-thirty"><strong>Düzeltme</strong></td>
385 | <td>Aynı anda kullanılamayan (ayrışık) özniteliklerden birini kaldırın.</td>
386 | </tr>
387 | </table>
388 |
389 | Bu hata, bir etiket aynı anda kullanılamayan (ayrışık) özniteliklerin her ikisine de sahip olduğunda ortaya çıkar.
390 | Örneğin, aşağıdaki etiketler için yalnızca birine izin verilir:
391 |
392 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` veya `src`
393 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` veya `src`
394 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` veya `srcdoc`
395 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` veya `data-videoid`
396 |
397 | ### Listede zorunlu öznitelik eksik
398 |
399 | <table>
400 | <tr>
401 | <td class="col-thirty"><strong>Kod</strong></td>
402 | <td><span class="notranslate">MANDATORY_ONEOF_ATTR_MISSING</span></td>
403 | </tr>
404 | <tr>
405 | <td class="col-thirty"><strong>Biçim</strong></td>
406 | <td><span class="notranslate">"The tag '%1' is missing a mandatory attribute - pick one of %2." </span></td>
407 | </tr>
408 | <tr>
409 | <td class="col-thirty"><strong>Düzeltme</strong></td>
410 | <td>Sağlanan öznitelik seçenekleri arasından eksik zorunlu özniteliği ekleyin.</td>
411 | </tr>
412 | </table>
413 |
414 | Bu hata, bir etikette birden çok seçenek arasından gerekli bir öznitelik eksik olduğunda ortaya çıkar.
415 | Örneğin, şu etiketler iki olası seçenekten bir özniteliğin bulunmasını gerektirir:
416 |
417 | * [amp-twitter](/docs/reference/extended/amp-twitter.html): `data-tweetid` veya `src`
418 | * [amp-instagram](/docs/reference/extended/amp-instagram.html): `data-shortcode` veya `src`
419 | * [amp-iframe](/docs/reference/extended/amp-iframe.html): `src` veya `srcdoc`
420 | * [amp-youtube](/docs/reference/extended/amp-youtube.html): `src` veya `data-videoid`
421 |
422 | ### Yanlış üst etiket
423 |
424 | <table>
425 | <tr>
426 | <td class="col-thirty"><strong>Kod</strong></td>
427 | <td><span class="notranslate">WRONG_PARENT_TAG</span></td>
428 | </tr>
429 | <tr>
430 | <td class="col-thirty"><strong>Biçim</strong></td>
431 | <td><span class="notranslate">"The parent tag of tag '%1' is '%2', but it can only be '%3'."</span></td>
432 | </tr>
433 | <tr>
434 | <td class="col-thirty"><strong>Düzeltme</strong></td>
435 | <td>Etiketi, gerekli üst öğenin doğrudan bir alt öğesi yapın.</td>
436 | </tr>
437 | </table>
438 |
439 | Belirli etiketler, yakın bir üst etiket gerektirir (uzak bir üst etiket değil).
440 | Aşağıda, belirli etiketler için gerekli üst etiketler listelenmiştir (etiket, üst etiket):
441 |
442 | * `!doctype`, `root` üst etiketini gerektirir.
443 | * `html`, `!doctype` üst etiketini gerektirir.
444 | * `head`, `html` üst etiketini gerektirir.
445 | * `body`, `html` üst etiketini gerektirir.
446 | * `link`, `head` üst etiketini gerektirir.
447 | * `meta`, `head` üst etiketini gerektirir.
448 | * `style amp-custom`, `head` üst etiketini gerektirir.
449 | * `style`, `boilerplate (noscript)` üst etiketini gerektirir.
450 | * `noscript`, `head` üst etiketini gerektirir.
451 | * `script`, `head` üst etiketini gerektirir.
452 | * `source`, bir medya etiketi (`amp-audio`, `amp-video` vb.) gerektirir.
453 |
454 | ### İzin verilmeyen etiket üst etiketi
455 |
456 | <table>
457 | <tr>
458 | <td class="col-thirty"><strong>Kod</strong></td>
459 | <td><span class="notranslate">DISALLOWED_TAG_ANCESTOR</span></td>
460 | </tr>
461 | <tr>
462 | <td class="col-thirty"><strong>Biçim</strong></td>
463 | <td><span class="notranslate">"The tag '%1' may not appear as a descendant of tag '%2'."</span></td>
464 | </tr>
465 | <tr>
466 | <td class="col-thirty"><strong>Düzeltme</strong></td>
467 | <td>İzin verilmeyen iç içe yerleştirilmiş etiketi kaldırın (veya taşıyın).</td>
468 | </tr>
469 | </table>
470 |
471 | Bu hata, bir etiket doğrulanmayan bir başka etiketin alt etiketi olduğunda ortaya çıkar.
472 | Şu anda tek örnek bir `template` etiketidir. Bu etiket, başka bir `template` etiketinin altında iç içe yerleştirilemez.
473 |
474 | ### Zorunlu etiket üst etiketi
475 |
476 | <table>
477 | <tr>
478 | <td class="col-thirty"><strong>Kod</strong></td>
479 | <td><span class="notranslate">MANDATORY_TAG_ANCESTOR</span></td>
480 | </tr>
481 | <tr>
482 | <td class="col-thirty"><strong>Biçim</strong></td>
483 | <td><span class="notranslate">"The tag '%1' may only appear as a descendant of tag '%2'."</span></td>
484 | </tr>
485 | <tr>
486 | <td class="col-thirty"><strong>Düzeltme</strong></td>
487 | <td>Etiketi kaldırın veya belirtilen etiketin bir alt etiketi yapın.</td>
488 | </tr>
489 | </table>
490 |
491 | Zorunlu alt etiketler, [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) `mandatory_ancestor` olarak tanımlanır.
492 |
493 | Hata, aşağıdaki etiketlerin `mandatory_ancestor` (etiket, üst etiket) özniteliği eksik olduğunda ortaya çıkar:
494 |
495 | * `img`, `noscript` etiketinin bir alt etiketi olmalıdır.
496 | * `video`, `noscript` etiketinin bir alt etiketi olmalıdır.
497 | * `audio`, `noscript` etiketinin bir alt etiketi olmalıdır.
498 | * `noscript`, `body` etiketinin bir alt etiketi olmalıdır.
499 |
500 | ### İpuçlu zorunlu etiket üst etiketi
501 |
502 | <table>
503 | <tr>
504 | <td class="col-thirty"><strong>Kod</strong></td>
505 | <td><span class="notranslate">MANDATORY_TAG_ANCESTOR_WITH_HINT</span></td>
506 | </tr>
507 | <tr>
508 | <td class="col-thirty"><strong>Biçim</strong></td>
509 | <td><span class="notranslate">"The tag '%1' may only appear as a descendant of tag '%2'. Did you mean '%3'?"</span></td>
510 | </tr>
511 | <tr>
512 | <td class="col-thirty"><strong>Düzeltme</strong></td>
513 | <td>Etiketi kaldırın, belirtilen etiketin alt etiketi yapın veya etiketi, ipuçlu etiketle değiştirin.</td>
514 | </tr>
515 | </table>
516 |
517 | Hata, AMP dokümanında aşağıdaki etiketlerden biri bulunduğunda ve zorunlu üst etiketiyle doğru bir şekilde iç içe yerleştirilmediğinde ortaya çıkar:
518 |
519 | * `img`, `noscript` üst etiketinin içinde değildir.
520 | * `video`, `noscript` üst etiketinin içinde değildir.
521 | * `audio`, `noscript` üst etiketinin içinde değildir.
522 | * `noscript`, `body` üst etiketinin içinde değildir.
523 |
524 | ### Yinelenen benzersiz etiket
525 |
526 | <table>
527 | <tr>
528 | <td class="col-thirty"><strong>Kod</strong></td>
529 | <td><span class="notranslate">DUPLICATE_UNIQUE_TAG</span></td>
530 | </tr>
531 | <tr>
532 | <td class="col-thirty"><strong>Biçim</strong></td>
533 | <td><span class="notranslate">"The tag '%1' appears more than once in the document."</span></td>
534 | </tr>
535 | <tr>
536 | <td class="col-thirty"><strong>Düzeltme</strong></td>
537 | <td>AMP dokümanındaki yinelenen etiketlerden birini kaldırın.</td>
538 | </tr>
539 | </table>
540 |
541 | Bu hata, etiketin yalnızca bir örneğine izin verildiği ve yinelenen bir etiketin bulunduğu durumlarda ortaya çıkar.
542 |
543 | Benzersiz etiketlerin tam listesi bilinmektedir:
544 |
545 | * `<doctype html>`
546 | * `<html amp>`
547 | * `<head>`
548 | * `<link rel=canonical href=...>`
549 | * `<link rel=amphtml href=...>`
550 | * `<meta charset="utf-8">`
551 | * `<meta viewport>`
552 | * `<style amp-custom>`
553 | * `<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>`
554 | * `<body>`
555 | * `<script src="https://cdn.ampproject.org/v0.js">`
556 |
557 | ## Stil ve düzen hataları
558 |
559 | Stil ve düzen hatalarına ayrıntılı bir şekilde girmeden önce, [stil](/docs/guides/responsive/style_pages.html) ve [düzenin](/docs/guides/responsive/control_layout.html) AMP'de nasıl çalıştığının anlaşılması iyi olur. AMP sayfaları birer HTML sayfası olduğundan stil, herhangi bir HTML sayfasıyla büyük ölçüde aynıdır.
560 | Ancak, sayfaların hızlı yüklenmesini sağlayan bazı kısıtlamalar söz konusudur ve AMP doğrulayıcı, bu kısıtlamaları uygular.
561 |
562 | Düzen, AMP sayfalarında daha fazla denetlenir.
563 | Sayfada görüntülenen herhangi bir etiketin önceden tanımlanmış bir yüksekliği ve genişliği olmalıdır. Bu, oluşturma ve kaydırma olumsuzluklarını önemli ölçüde azaltır.
564 | Bununla birlikte, bu öznitelikleri manuel olarak eklemeniz gerekmez.
565 | Belirli düzen türlerinde, varsayılan değerler kabul edildiğinden AMP doğrulayıcı hata bildirmez.
566 |
567 | Her AMP etiketinin, [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) tanımlanana benzer bir `supported_layouts` listesi vardır.
568 | Doğrulayıcı, desteklenmeyen düzenler için hatalar bildirir ve önceden tanımlanmış düzene ilişkin doğrulama kurallarını kontrol eder.
569 |
570 | ### Stil sayfası çok uzun
571 |
572 | <table>
573 | <tr>
574 | <td class="col-thirty"><strong>Kod</strong></td>
575 | <td><span class="notranslate">STYLESHEET_TOO_LONG</span></td>
576 | </tr>
577 | <tr>
578 | <td class="col-thirty"><strong>Biçim</strong></td>
579 | <td><span class="notranslate">"The author stylesheet specified in tag 'style' is too long - we saw %1 bytes whereas the limit is %2 bytes."</span></td>
580 | </tr>
581 | <tr>
582 | <td class="col-thirty"><strong>Düzeltme</strong></td>
583 | <td>Stil sayfasının boyutunu 50.000 baytın altında olacak şekilde küçültün.</td>
584 | </tr>
585 | </table>
586 |
587 | AMP doğrulayıcı, `<style amp-custom>` içindeki stil içeriğinin 50.000 bayt sınırını aştığı tespit edildiğinde bu hatayı bildirir.
588 |
589 | ### CSS sözdizimi hatası
590 |
591 | <table>
592 | <tr>
593 | <td class="col-thirty"><strong>Kod</strong></td>
594 | <td><span class="notranslate">CSS_SYNTAX</span></td>
595 | </tr>
596 | <tr>
597 | <td class="col-thirty"><strong>Biçim</strong></td>
598 | <td><span class="notranslate">"CSS syntax error in tag '%1' - %2."</span></td>
599 | </tr>
600 | <tr>
601 | <td class="col-thirty"><strong>Düzeltme</strong></td>
602 | <td>CSS sözdizimi hatasını düzeltin.</td>
603 | </tr>
604 | </table>
605 |
606 | Bu hata, belirtilen etikette CSS sözdizimi hataları olduğunda ortaya çıkar.
607 | Hataya neyin neden olduğundan emin değilseniz, örneğin [csslint](http://csslint.net/) gibi bir çevrimiçi CSS doğrulayıcıyla CSS'yi incelemeyi deneyin.
608 |
609 | ### Belirli bir kuralda CSS sözdizimi hatası
610 |
611 | <table>
612 | <tr>
613 | <td class="col-thirty"><strong>Kod</strong></td>
614 | <td><span class="notranslate">CSS_SYNTAX_INVALID_AT_RULE</span></td>
615 | </tr>
616 | <tr>
617 | <td class="col-thirty"><strong>Biçim</strong></td>
618 | <td><span class="notranslate">"CSS syntax error in tag '%1' - saw invalid at rule '%2'."</span></td>
619 | </tr>
620 | <tr>
621 | <td class="col-thirty"><strong>Düzeltme</strong></td>
622 | <td>Belirtilen CSS sözdizimi hatasını düzeltin.</td>
623 | </tr>
624 | </table>
625 |
626 | Bu hata, CSS içindeki @ kurallarına gönderme yapar. AMP, bunlar için yalnızca bir avuç kurala izin vermektedir.
627 | (ayrıca [AMP spesifikasyonuna](/docs/reference/spec.html) da bakın).
628 | Örneğin, `@import` kuralına izin verilmez.
629 | Doğrulama hatası özel olarak geçersiz olan kuralı size bildirerek söz konusu kuralın düzeltilmesini kolaylaştırır.
630 |
631 | ### İşaret edilen düzen AMP etiketi tarafından desteklenmiyor
632 |
633 | <table>
634 | <tr>
635 | <td class="col-thirty"><strong>Kod</strong></td>
636 | <td><span class="notranslate">IMPLIED_LAYOUT_INVALID</span></td>
637 | </tr>
638 | <tr>
639 | <td class="col-thirty"><strong>Biçim</strong></td>
640 | <td><span class="notranslate">"The implied layout '%1' is not supported by tag '%2'."</span></td>
641 | </tr>
642 | <tr>
643 | <td class="col-thirty"><strong>Düzeltme</strong></td>
644 | <td>Etiket için geçerli bir düzen özniteliği sağlayın.</td>
645 | </tr>
646 | </table>
647 |
648 | Bu hata, AMP etiketi için bir düzen belirtmediğinizde ve işaret edilen düzen (genişlik, yükseklik ve boyutlara göre) desteklenmediğinde ortaya çıkar.
649 | [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii), etikete ilişkin `supported_layout` değerlerini kontrol edin.
650 |
651 | Gerçek düzen davranışı, `layout` özniteliği tarafından belirlenir.
652 | Düzenin nasıl çalıştığıyla ilgili daha fazla bilgi için [Düzen Nasıl Kontrol Edilir?](/docs/guides/responsive/control_layout.html) konusuna ve [AMP HTML düzeni sistem spesifikasyonuna](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md) bakın.
653 |
654 | **Not:** Düzeni belirtmezseniz ve `width` ile `height` değerlerini dahil etmezseniz düzen, varsayılan olarak CONTAINER değerine ayarlanır. CONTAINER hiçbir AMP etiketinde desteklenmediğinden doğrulayıcı bir hata bildirir.
655 | CONTAINER dışında bir düzen belirtir veya bir `width` ve/veya `height` değeri bildirirseniz hata kaybolur.
656 |
657 | ### İşaret edilen düzen, özniteliğe izin vermiyor
658 |
659 | <table>
660 | <tr>
661 | <td class="col-thirty"><strong>Kod</strong></td>
662 | <td><span class="notranslate">ATTR_DISALLOWED_BY_IMPLIED_LAYOUT</span></td>
663 | </tr>
664 | <tr>
665 | <td class="col-thirty"><strong>Biçim</strong></td>
666 | <td><span class="notranslate">"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</span></td>
667 | </tr>
668 | <tr>
669 | <td class="col-thirty"><strong>Düzeltme</strong></td>
670 | <td>İzin verilmeyen özniteliği etiketten kaldırın veya bu özniteliğe izin veren bir düzen belirtin.</td>
671 | </tr>
672 | </table>
673 |
674 | Bu hata, AMP etiketi için bir düzen belirtmediğinizde ve işaret edilen düzen izin verilmeyen bir öznitelik içerdiğinde ortaya çıkar.
675 | Düzen türleri için izin verilmeyen öznitelikler [AMP HTML düzeni sistem spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md) açıklanmıştır.
676 |
677 | ### Belirtilen düzen AMP etiketi tarafından desteklenmiyor
678 |
679 | <table>
680 | <tr>
681 | <td class="col-thirty"><strong>Kod</strong></td>
682 | <td><span class="notranslate">SPECIFIED_LAYOUT_INVALID</span></td>
683 | </tr>
684 | <tr>
685 | <td class="col-thirty"><strong>Biçim</strong></td>
686 | <td><span class="notranslate">"The specified layout '%1' is not supported by tag '%2'."</span></td>
687 | </tr>
688 | <tr>
689 | <td class="col-thirty"><strong>Düzeltme</strong></td>
690 | <td>Etiket tarafından desteklenen bir düzen belirtin.</td>
691 | </tr>
692 | </table>
693 |
694 | Bu hata, etiket için belirtilen düzen desteklenmediğinde ortaya çıkar.
695 | [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii), etikete ilişkin `supported_layout` değerlerini kontrol edin.
696 |
697 | Gerçek düzen davranışı, `layout` özniteliği tarafından belirlenir.
698 | Düzenin nasıl çalıştığıyla ilgili daha fazla bilgi için [Düzen Nasıl Kontrol Edilir?](/docs/guides/responsive/control_layout.html) konusuna ve [AMP HTML düzeni sistem spesifikasyonuna](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md) bakın.
699 |
700 | ### Belirtilen düzen, özniteliğe izin vermiyor
701 |
702 | <table>
703 | <tr>
704 | <td class="col-thirty"><strong>Kod</strong></td>
705 | <td><span class="notranslate">ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT</span></td>
706 | </tr>
707 | <tr>
708 | <td class="col-thirty"><strong>Biçim</strong></td>
709 | <td><span class="notranslate">"The attribute '%1' in tag '%2' is disallowed by implied layout '%3'."</span></td>
710 | </tr>
711 | <tr>
712 | <td class="col-thirty"><strong>Düzeltme</strong></td>
713 | <td>İzin verilmeyen özniteliği etiketten kaldırın veya bu özniteliğe izin veren bir düzen belirtin.</td>
714 | </tr>
715 | </table>
716 |
717 | Bu hata, AMP etiketi için bir düzen belirttiğinizde ve düzen izin verilmeyen bir öznitelik içerdiğinde ortaya çıkar.
718 | Düzen türleri için izin verilmeyen öznitelikler [AMP HTML düzeni sistem spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/spec/amp-html-layout.md) açıklanmıştır.
719 |
720 | ### Düzenin gerektirdiği öznitelik için geçersiz değer
721 |
722 | <table>
723 | <tr>
724 | <td class="col-thirty"><strong>Kod</strong></td>
725 | <td><span class="notranslate">ATTR_VALUE_REQUIRED_BY_LAYOUT</span></td>
726 | </tr>
727 | <tr>
728 | <td class="col-thirty"><strong>Biçim</strong></td>
729 | <td><span class="notranslate">"Invalid value '%1' for attribute '%2' in tag '%3' - for layout '%4', set the attribute '%2' to value '%5'."</span></td>
730 | </tr>
731 | <tr>
732 | <td class="col-thirty"><strong>Düzeltme</strong></td>
733 | <td>Özniteliği belirtilen değere ayarlayın.</td>
734 | </tr>
735 | </table>
736 |
737 | Bu hata, öznitelik değeri belirtilen düzen için geçersiz olduğunda ortaya çıkar.
738 | Bu hatayı neyin tetiklediğini anlamak için [düzenlerin farklı davranışları](/docs/guides/responsive/control_layout.html#size-and-position-elements) hakkında bilgi sahibi olmanız gerekir.
739 |
740 | Örneğin, düzeni `fixed-height` olacak şekilde ayarladığınızı ve hem `height` hem de `width` için sayısal değerler eklediğinizi düşünelim.
741 | `fixed-height` düzeni, bir `height` değeri alır.
742 | `width` özniteliği mevcut olmamalı veya `auto` değerine ayarlanmış olmalıdır.
743 | Doğrulayıcı, ATTR_VALUE_REQUIRED_BY_LAYOUT hatasını bildirir.
744 |
745 | ### Genişlik ve yükseklik için tutarsız birimler
746 |
747 | <table>
748 | <tr>
749 | <td class="col-thirty"><strong>Kod</strong></td>
750 | <td><span class="notranslate">INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT</span></td>
751 | </tr>
752 | <tr>
753 | <td class="col-thirty"><strong>Biçim</strong></td>
754 | <td><span class="notranslate">"Inconsistent units for width and height in tag '%1' - width is specified in '%2' whereas height is specified in '%3'."</span></td>
755 | </tr>
756 | <tr>
757 | <td class="col-thirty"><strong>Düzeltme</strong></td>
758 | <td>Tutarlı birim genişlikleri ve yükseklikleri sağlayın.</td>
759 | </tr>
760 | </table>
761 |
762 | `layout=fixed` dışında, genişlik ve yükseklik özniteliklerinin aynı birimlerde ifade edilmesi gerekir.
763 | Aynı birimlerde ifade edilmediklerinde bu hata tetiklenir.
764 |
765 | Örneğin, `<amp-img src="" layout="responsive" width="42px" height="42rem">` etiketi şu hata iletisiyle sonuçlanır:
766 |
767 | "'amp-img' etiketinde genişlik ve yükseklik için tutarsız birimler kullanıldı - genişlik 'px', yükseklik 'rem' olarak belirtildi."
768 |
769 | ## Şablon oluşturma hataları
770 |
771 | AMP sayfaları şablon oluşturma sözdizimini içeremez. Bunun için, sözdiziminin [amp-mustache](/docs/reference/extended/amp-mustache.html) gibi özellikle şablonları içermek üzere tasarlanmış bir AMP etiketi içinde olması gerekir.
772 |
773 | Şablonları kaynak dosyalarınıza dahil etmeniz bir sıkıntı oluşturmaz, ancak sorun olmaması için bu dosyaların oluşturulan çıktısının şablonları içermemesi gerekir ([CSS ön işlemcilerini kullanma](/docs/guides/responsive/style_pages.html#use-css-preprocessors) konusuna da bakın).
774 |
775 | ### Öznitelik, şablon sözdizimi içeriyor
776 |
777 | <table>
778 | <tr>
779 | <td class="col-thirty"><strong>Kod</strong></td>
780 | <td><span class="notranslate">TEMPLATE_IN_ATTR_NAME</span></td>
781 | </tr>
782 | <tr>
783 | <td class="col-thirty"><strong>Biçim</strong></td>
784 | <td><span class="notranslate">"Mustache template syntax in attribute name '%1' in tag '%2'."</span></td>
785 | </tr>
786 | <tr>
787 | <td class="col-thirty"><strong>Düzeltme</strong></td>
788 | <td>Mustache şablonu sözdizimini şablondan kaldırın.</td>
789 | </tr>
790 | </table>
791 |
792 | Bu hata, doğrulayıcı bir öznitelik değerinde [Mustache şablonu sözdizimini](https://mustache.github.io/mustache.5.html) bulduğunda ortaya çıkar.
793 |
794 | ### Öznitelik, çıkış yapılmamış şablon sözdizimi içeriyor
795 |
796 | <table>
797 | <tr>
798 | <td class="col-thirty"><strong>Kod</strong></td>
799 | <td><span class="notranslate">UNESCAPED_TEMPLATE_IN_ATTR_VALUE</span></td>
800 | </tr>
801 | <tr>
802 | <td class="col-thirty"><strong>Biçim</strong></td>
803 | <td><span class="notranslate">"The attribute '%1' in tag '%2' is set to '%3', which contains unescaped Mustache template syntax."</span></td>
804 | </tr>
805 | <tr>
806 | <td class="col-thirty"><strong>Düzeltme</strong></td>
807 | <td>Mustache şablonundan çıkış yapın.</td>
808 | </tr>
809 | </table>
810 |
811 | Bu hata, doğrulayıcı bir öznitelik değerinde [Mustache şablonu sözdiziminden çıkış yapılmadığını](https://mustache.github.io/mustache.5.html) belirlediğinde ortaya çıkar.
812 |
813 | ### Öznitelik, şablon parçası içeriyor
814 |
815 | <table>
816 | <tr>
817 | <td class="col-thirty"><strong>Kod</strong></td>
818 | <td><span class="notranslate">TEMPLATE_PARTIAL_IN_ATTR_VALUE</span></td>
819 | </tr>
820 | <tr>
821 | <td class="col-thirty"><strong>Biçim</strong></td>
822 | <td><span class="notranslate">"The attribute '%1' in tag '%2' is set to '%3', which contains a Mustache template partial."</span></td>
823 | </tr>
824 | <tr>
825 | <td class="col-thirty"><strong>Düzeltme</strong></td>
826 | <td>Mustache parçasını kaldırın.</td>
827 | </tr>
828 | </table>
829 |
830 | Bu hata, doğrulayıcı bir öznitelik değerinde [Mustache şablonu parçası](https://mustache.github.io/mustache.5.html) bulduğunda ortaya çıkar.
831 |
832 | ## Kullanımdan kaldırma hataları
833 |
834 | ### Kullanımdan kaldırılmış etiket
835 |
836 | <table>
837 | <tr>
838 | <td class="col-thirty"><strong>Kod</strong></td>
839 | <td><span class="notranslate">DEPRECATED_TAG</span></td>
840 | </tr>
841 | <tr>
842 | <td class="col-thirty"><strong>Biçim</strong></td>
843 | <td><span class="notranslate">No error message defined as yet (no deprecated tags).</span></td>
844 | </tr>
845 | <tr>
846 | <td class="col-thirty"><strong>Düzeltme</strong></td>
847 | <td>Kullanımdan kaldırılan etiketi kaldırın.</td>
848 | </tr>
849 | </table>
850 |
851 | Bu uyarı, AMP dokümanında önceden geçerli olan bir AMP etiketi bulunduğunda ortaya çıkar.
852 | Bu yalnızca bir uyarıdır: Uyarılar içeren AMP dokümanlarının geçerliliği devam eder.
853 | Şu anda kullanımdan kaldırılmış herhangi bir etiket yoktur; uyarı, ileride olabilecek kullanımdan kaldırmalar için ayrılmıştır.
854 |
855 | ### Kullanımdan kaldırılmış öznitelik
856 |
857 | <table>
858 | <tr>
859 | <td class="col-thirty"><strong>Kod</strong></td>
860 | <td><span class="notranslate">DEPRECATED_ATTR</span></td>
861 | </tr>
862 | <tr>
863 | <td class="col-thirty"><strong>Biçim</strong></td>
864 | <td><span class="notranslate">"The attribute '%1' in tag '%2' is deprecated - use '%3' instead."</span></td>
865 | </tr>
866 | <tr>
867 | <td class="col-thirty"><strong>Düzeltme</strong></td>
868 | <td>İyi bir uygulama olarak kullanımdan kaldırılan özniteliği kaldırın.</td>
869 | </tr>
870 | </table>
871 |
872 | Bu uyarı, AMP dokümanında önceden geçerli olan bir AMP özniteliği bulunduğunda ortaya çıkar.
873 | Bu yalnızca bir uyarıdır: Uyarılar içeren AMP dokümanlarının geçerliliği devam eder.
874 |
875 | [AMP doğrulayıcı spesifikasyonunda](https://github.com/ampproject/amphtml/blob/master/validator/validator-main.protoascii) `deprecation` terimini arayarak her bir AMP etiketi için kullanımdan kaldırılan öznitelikleri tanımlayın.
876 | </body>
877 | </html>
878 |
```