Website report

Vue.js

vuejs.org ↗·🇺🇸 United States · Tech & dev tools

Measured

Global rank#334
GradeA

Your result

13 broken links to fix.

Link health
93.50/100

Healthy links in the sample

Quality checklist
78.54/100

Scored technical checks

Broken links
13

Confirmed in sample

200 links verified · 0 unknown · 19 selected source pages · 100% of selected destinations verified. Sample only. Unknown links are not counted as broken.

What to fix first

View all priorities →

Includes issues from the extended diagnostic report.

  1. Fix 15 diagnostic broken links

    Start with navigation and internal links so visitors can reach your pages.

  2. Self-referencing canonical

    Declare exactly one <link rel="canonical"> whose absolute URL is this page's own final URL (same scheme, host, path and query; only a trailing slash or fragment may differ). Cross-URL canonicals belong on duplicate pages, not on the indexable page itself. Reference: Google Search Central, canonicalization.

  3. Image dimensions declared

    Declare width and height attributes (or an inline aspect-ratio style) on every visible <img> so the browser reserves space before the image loads. Reference: web.dev / Lighthouse "image elements have explicit width and height" (layout shift).

Fix with your coding assistant

Copy a ready-to-use prompt with the issues and affected URLs.

Your path to S-Tier

Not yet S-Tier

Healthy links, every scored requirement passed, and complete evidence in the selected sample.

  • Revalidate the badge with a new scan (valid for 30 days).
  • Fix every confirmed broken link in the selected sample.
  • Pass all scored quality requirements across the five categories.
  • Verify every required check and selected destination; incomplete or retained evidence cannot unlock the badge.
How this result qualifies

Verified internal navigation

At least 10 internal destinations were verified. Unknown items do not disqualify the site; confirmed checklist failures reduce quality.

93.50/100 link health · 78.54/100 quality · 200 internal destinations

New comparison baseline. A change in coverage is not a verified improvement.

The diagnostic report below may cover additional pages and external links. Only the stored competitive sample determines the ranking. At least 10 verified internal links are required; unavailable checklist items do not exclude a site. How scoring works

Explore issues & evidenceConfirmed issues, suggested fixes and the evidence behind them.
15 diagnostic broken links97 pages readExtended evidence may include links outside the badge sample.
Latest competitive sample and evidence · 78.54/100 quality

At least 10 internal destinations were verified. Unknown items do not disqualify the site; confirmed checklist failures reduce quality. The available outcomes agreed between passes.

19 selected source URLs · 200 internal destinations. 200 evaluated · 0 unknown · 0 using previous evidence. The expanded diagnostic report follows below.

SEO
80.00/100
Accessibility
78.95/100
Structure
59.65/100
Sharing
88.89/100
Security
100.00/100
Selected pages
  • https://vuejs.org/
  • https://vuejs.org/about/coc
  • https://vuejs.org/about/community-guide
  • https://vuejs.org/about/faq
  • https://vuejs.org/about/privacy
  • https://vuejs.org/about/releases
  • https://vuejs.org/about/team
  • https://vuejs.org/api/
  • https://vuejs.org/ecosystem/newsletters
  • https://vuejs.org/ecosystem/themes
  • https://vuejs.org/error-reference/
  • https://vuejs.org/examples/
  • https://vuejs.org/glossary/
  • https://vuejs.org/guide/introduction
  • https://vuejs.org/guide/quick-start
  • https://vuejs.org/guide/scaling-up/tooling
  • https://vuejs.org/partners/
  • https://vuejs.org/sponsor/
  • https://vuejs.org/tutorial/
Internal link verdicts and weights
  • ok · weight 6 · https://blog.vuejs.org/
  • ok · weight 6 · https://bn.vuejs.org/
  • ok · weight 6 · https://bn.vuejs.org/about/coc
  • ok · weight 6 · https://bn.vuejs.org/about/community-guide
  • ok · weight 6 · https://bn.vuejs.org/about/faq
  • ok · weight 6 · https://bn.vuejs.org/about/privacy
  • ok · weight 6 · https://bn.vuejs.org/about/releases
  • ok · weight 6 · https://bn.vuejs.org/about/team
  • ok · weight 6 · https://bn.vuejs.org/api/
  • ok · weight 6 · https://bn.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://bn.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://bn.vuejs.org/error-reference/
  • ok · weight 6 · https://bn.vuejs.org/examples/
  • ok · weight 6 · https://bn.vuejs.org/glossary/
  • ok · weight 6 · https://bn.vuejs.org/guide/introduction
  • ok · weight 6 · https://bn.vuejs.org/guide/quick-start
  • ok · weight 6 · https://bn.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://bn.vuejs.org/partners/
  • ok · weight 6 · https://bn.vuejs.org/sponsor/
  • ok · weight 6 · https://bn.vuejs.org/tutorial/
  • ok · weight 6 · https://cn.vuejs.org/
  • ok · weight 6 · https://cn.vuejs.org/about/coc
  • ok · weight 6 · https://cn.vuejs.org/about/community-guide
  • ok · weight 6 · https://cn.vuejs.org/about/faq
  • ok · weight 6 · https://cn.vuejs.org/about/privacy
  • ok · weight 6 · https://cn.vuejs.org/about/releases
  • ok · weight 6 · https://cn.vuejs.org/about/team
  • ok · weight 6 · https://cn.vuejs.org/api/
  • ok · weight 6 · https://cn.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://cn.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://cn.vuejs.org/error-reference/
  • ok · weight 6 · https://cn.vuejs.org/examples/
  • ok · weight 6 · https://cn.vuejs.org/glossary/
  • ok · weight 6 · https://cn.vuejs.org/guide/introduction
  • ok · weight 6 · https://cn.vuejs.org/guide/quick-start
  • ok · weight 6 · https://cn.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://cn.vuejs.org/partners/
  • ok · weight 6 · https://cn.vuejs.org/sponsor/
  • ok · weight 6 · https://cn.vuejs.org/tutorial/
  • ok · weight 6 · https://cs.vuejs.org/
  • ok · weight 6 · https://cs.vuejs.org/about/coc
  • ok · weight 6 · https://cs.vuejs.org/about/community-guide
  • ok · weight 6 · https://cs.vuejs.org/about/faq
  • ok · weight 6 · https://cs.vuejs.org/about/privacy
  • ok · weight 6 · https://cs.vuejs.org/about/releases
  • ok · weight 6 · https://cs.vuejs.org/about/team
  • ok · weight 6 · https://cs.vuejs.org/api/
  • ok · weight 6 · https://cs.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://cs.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://cs.vuejs.org/error-reference/
  • ok · weight 6 · https://cs.vuejs.org/examples/
  • ok · weight 6 · https://cs.vuejs.org/glossary/
  • ok · weight 6 · https://cs.vuejs.org/guide/introduction
  • ok · weight 6 · https://cs.vuejs.org/guide/quick-start
  • ok · weight 6 · https://cs.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://cs.vuejs.org/partners/
  • ok · weight 6 · https://cs.vuejs.org/sponsor/
  • ok · weight 6 · https://cs.vuejs.org/tutorial/
  • ok · weight 6 · https://de.vuejs.org/
  • ok · weight 6 · https://de.vuejs.org/about/coc
  • ok · weight 6 · https://de.vuejs.org/about/community-guide
  • ok · weight 6 · https://de.vuejs.org/about/faq
  • ok · weight 6 · https://de.vuejs.org/about/privacy
  • ok · weight 6 · https://de.vuejs.org/about/releases
  • ok · weight 6 · https://de.vuejs.org/about/team
  • ok · weight 6 · https://de.vuejs.org/api/
  • ok · weight 6 · https://de.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://de.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://de.vuejs.org/error-reference/
  • ok · weight 6 · https://de.vuejs.org/examples/
  • ok · weight 6 · https://de.vuejs.org/glossary/
  • ok · weight 6 · https://de.vuejs.org/guide/introduction
  • ok · weight 6 · https://de.vuejs.org/guide/quick-start
  • ok · weight 6 · https://de.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://de.vuejs.org/partners/
  • ok · weight 6 · https://de.vuejs.org/sponsor/
  • ok · weight 6 · https://de.vuejs.org/tutorial/
  • ok · weight 6 · https://events.vuejs.org/
  • ok · weight 6 · https://fa.vuejs.org/
  • ok · weight 6 · https://fa.vuejs.org/about/coc
  • ok · weight 6 · https://fa.vuejs.org/about/community-guide
  • ok · weight 6 · https://fa.vuejs.org/about/faq
  • ok · weight 6 · https://fa.vuejs.org/about/privacy
  • ok · weight 6 · https://fa.vuejs.org/about/releases
  • ok · weight 6 · https://fa.vuejs.org/about/team
  • ok · weight 6 · https://fa.vuejs.org/api/
  • ok · weight 6 · https://fa.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://fa.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://fa.vuejs.org/error-reference/
  • ok · weight 6 · https://fa.vuejs.org/examples/
  • ok · weight 6 · https://fa.vuejs.org/glossary/
  • ok · weight 6 · https://fa.vuejs.org/guide/introduction
  • ok · weight 6 · https://fa.vuejs.org/guide/quick-start
  • ok · weight 6 · https://fa.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://fa.vuejs.org/partners/
  • ok · weight 6 · https://fa.vuejs.org/sponsor/
  • ok · weight 6 · https://fa.vuejs.org/tutorial/
  • ok · weight 6 · https://fr.vuejs.org/
  • ok · weight 6 · https://fr.vuejs.org/about/coc
  • ok · weight 6 · https://fr.vuejs.org/about/community-guide
  • ok · weight 6 · https://fr.vuejs.org/about/faq
  • ok · weight 6 · https://fr.vuejs.org/about/privacy
  • ok · weight 6 · https://fr.vuejs.org/about/releases
  • ok · weight 6 · https://fr.vuejs.org/about/team
  • ok · weight 6 · https://fr.vuejs.org/api/
  • ok · weight 6 · https://fr.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://fr.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://fr.vuejs.org/error-reference/
  • ok · weight 6 · https://fr.vuejs.org/examples/
  • ok · weight 6 · https://fr.vuejs.org/glossary/
  • ok · weight 6 · https://fr.vuejs.org/guide/introduction
  • ok · weight 6 · https://fr.vuejs.org/guide/quick-start
  • ok · weight 6 · https://fr.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://fr.vuejs.org/partners/
  • ok · weight 6 · https://fr.vuejs.org/sponsor/
  • ok · weight 6 · https://fr.vuejs.org/tutorial/
  • ok · weight 6 · https://it.vuejs.org/
  • broken · weight 6 · https://it.vuejs.org/about/coc
  • broken · weight 6 · https://it.vuejs.org/about/community-guide
  • broken · weight 6 · https://it.vuejs.org/about/faq
  • broken · weight 6 · https://it.vuejs.org/about/privacy
  • broken · weight 6 · https://it.vuejs.org/about/releases
  • broken · weight 6 · https://it.vuejs.org/about/team
  • ok · weight 6 · https://it.vuejs.org/api/
  • broken · weight 6 · https://it.vuejs.org/ecosystem/newsletters
  • broken · weight 6 · https://it.vuejs.org/ecosystem/themes
  • broken · weight 6 · https://it.vuejs.org/error-reference/
  • ok · weight 6 · https://it.vuejs.org/examples/
  • ok · weight 6 · https://it.vuejs.org/glossary/
  • broken · weight 6 · https://it.vuejs.org/guide/introduction
  • broken · weight 6 · https://it.vuejs.org/guide/quick-start
  • broken · weight 6 · https://it.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://it.vuejs.org/partners/
  • ok · weight 6 · https://it.vuejs.org/sponsor/
  • ok · weight 6 · https://it.vuejs.org/tutorial/
  • ok · weight 6 · https://ja.vuejs.org/
  • ok · weight 6 · https://ja.vuejs.org/about/coc
  • ok · weight 6 · https://ja.vuejs.org/about/community-guide
  • ok · weight 6 · https://ja.vuejs.org/about/faq
  • ok · weight 6 · https://ja.vuejs.org/about/privacy
  • ok · weight 6 · https://ja.vuejs.org/about/releases
  • ok · weight 6 · https://ja.vuejs.org/about/team
  • ok · weight 6 · https://ja.vuejs.org/api/
  • ok · weight 6 · https://ja.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://ja.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://ja.vuejs.org/error-reference/
  • ok · weight 6 · https://ja.vuejs.org/examples/
  • ok · weight 6 · https://ja.vuejs.org/glossary/
  • ok · weight 6 · https://ja.vuejs.org/guide/introduction
  • ok · weight 6 · https://ja.vuejs.org/guide/quick-start
  • ok · weight 6 · https://ja.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://ja.vuejs.org/partners/
  • ok · weight 6 · https://ja.vuejs.org/sponsor/
  • ok · weight 6 · https://ja.vuejs.org/tutorial/
  • ok · weight 6 · https://ko.vuejs.org/
  • ok · weight 6 · https://ko.vuejs.org/about/coc
  • ok · weight 6 · https://ko.vuejs.org/about/community-guide
  • ok · weight 6 · https://ko.vuejs.org/about/faq
  • ok · weight 6 · https://ko.vuejs.org/about/privacy
  • ok · weight 6 · https://ko.vuejs.org/about/releases
  • ok · weight 6 · https://ko.vuejs.org/about/team
  • ok · weight 6 · https://ko.vuejs.org/api/
  • ok · weight 6 · https://ko.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://ko.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://ko.vuejs.org/error-reference/
  • ok · weight 6 · https://ko.vuejs.org/examples/
  • ok · weight 6 · https://ko.vuejs.org/glossary/
  • ok · weight 6 · https://ko.vuejs.org/guide/introduction
  • ok · weight 6 · https://ko.vuejs.org/guide/quick-start
  • ok · weight 6 · https://ko.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://ko.vuejs.org/partners/
  • ok · weight 6 · https://ko.vuejs.org/sponsor/
  • ok · weight 6 · https://ko.vuejs.org/tutorial/
  • ok · weight 6 · https://pinia.vuejs.org/
  • ok · weight 6 · https://pl.vuejs.org/
  • ok · weight 6 · https://pl.vuejs.org/about/coc
  • ok · weight 6 · https://pl.vuejs.org/about/community-guide
  • ok · weight 6 · https://pl.vuejs.org/about/faq
  • ok · weight 6 · https://pl.vuejs.org/about/privacy
  • ok · weight 6 · https://pl.vuejs.org/about/releases
  • ok · weight 6 · https://pl.vuejs.org/about/team
  • ok · weight 6 · https://pl.vuejs.org/api/
  • ok · weight 6 · https://pl.vuejs.org/ecosystem/newsletters
  • ok · weight 6 · https://pl.vuejs.org/ecosystem/themes
  • ok · weight 6 · https://pl.vuejs.org/error-reference/
  • ok · weight 6 · https://pl.vuejs.org/examples/
  • ok · weight 6 · https://pl.vuejs.org/glossary/
  • ok · weight 6 · https://pl.vuejs.org/guide/introduction
  • ok · weight 6 · https://pl.vuejs.org/guide/quick-start
  • ok · weight 6 · https://pl.vuejs.org/guide/scaling-up/tooling
  • ok · weight 6 · https://pl.vuejs.org/partners/
  • ok · weight 6 · https://pl.vuejs.org/sponsor/
  • ok · weight 6 · https://pl.vuejs.org/tutorial/
  • ok · weight 6 · https://play.vuejs.org/
  • ok · weight 6 · https://pt.vuejs.org/
  • ok · weight 6 · https://pt.vuejs.org/about/coc
  • ok · weight 6 · https://pt.vuejs.org/about/community-guide
  • ok · weight 6 · https://pt.vuejs.org/about/faq
  • broken · weight 6 · https://pt.vuejs.org/about/privacy
  • ok · weight 6 · https://pt.vuejs.org/about/releases
Scoring checks
  • Page title: passed · 19/19 applicable observations

    https://vuejs.org/: Vue.js - The Progressive JavaScript Framework | Vue.js

    https://vuejs.org/about/coc: Code Of Conduct | Vue.js

    https://vuejs.org/about/community-guide: Community Guide | Vue.js

    https://vuejs.org/about/faq: Frequently Asked Questions | Vue.js

    https://vuejs.org/about/privacy: Vue.js Privacy Policy | Vue.js

  • Distinct page titles: passed · 19/19 applicable observations

    https://vuejs.org/: Vue.js - The Progressive JavaScript Framework | Vue.js

    https://vuejs.org/about/coc: Code Of Conduct | Vue.js

    https://vuejs.org/about/community-guide: Community Guide | Vue.js

    https://vuejs.org/about/faq: Frequently Asked Questions | Vue.js

    https://vuejs.org/about/privacy: Vue.js Privacy Policy | Vue.js

  • Meta description: passed · 19/19 applicable observations

    https://vuejs.org/: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/coc: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/community-guide: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/faq: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/privacy: Vue.js - The Progressive JavaScript Framework

  • Self-referencing canonical: failed · 0/19 applicable observations

    https://vuejs.org/: No canonical URL

    https://vuejs.org/about/coc: No canonical URL

    https://vuejs.org/about/community-guide: No canonical URL

    https://vuejs.org/about/faq: No canonical URL

    https://vuejs.org/about/privacy: No canonical URL

  • Main heading: failed · 17/19 applicable observations

    https://vuejs.org/examples/: 0 H1 element(s)

    https://vuejs.org/tutorial/: 0 H1 element(s)

    https://vuejs.org/: 1 H1 element(s)

    https://vuejs.org/about/coc: 1 H1 element(s)

    https://vuejs.org/about/community-guide: 1 H1 element(s)

  • Heading hierarchy: failed · 13/19 applicable observations

    https://vuejs.org/: 1 skipped heading level(s)

    https://vuejs.org/examples/: 1 skipped heading level(s)

    https://vuejs.org/guide/introduction: 1 skipped heading level(s)

    https://vuejs.org/guide/quick-start: 1 skipped heading level(s)

    https://vuejs.org/guide/scaling-up/tooling: 1 skipped heading level(s)

  • Main landmark: passed · 19/19 applicable observations

    https://vuejs.org/: 1 main landmarks

    https://vuejs.org/about/coc: 1 main landmarks

    https://vuejs.org/about/community-guide: 1 main landmarks

    https://vuejs.org/about/faq: 1 main landmarks

    https://vuejs.org/about/privacy: 1 main landmarks

  • Mobile viewport: passed · 19/19 applicable observations

    https://vuejs.org/: width=device-width,initial-scale=1

    https://vuejs.org/about/coc: width=device-width,initial-scale=1

    https://vuejs.org/about/community-guide: width=device-width,initial-scale=1

    https://vuejs.org/about/faq: width=device-width,initial-scale=1

    https://vuejs.org/about/privacy: width=device-width,initial-scale=1

  • Image dimensions declared: failed · 0/4 applicable observations

    https://vuejs.org/: 1 of 1 images lack width/height attributes or an aspect-ratio style

    https://vuejs.org/about/coc: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://vuejs.org/about/community-guide: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://vuejs.org/about/faq: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://vuejs.org/about/privacy: 0 of 0 images lack width/height attributes or an aspect-ratio style

  • Structured data syntax: failed · 0/19 applicable observations

    https://vuejs.org/: 0 of 0 blocks have valid JSON-LD structure

    https://vuejs.org/about/coc: 0 of 0 blocks have valid JSON-LD structure

    https://vuejs.org/about/community-guide: 0 of 0 blocks have valid JSON-LD structure

    https://vuejs.org/about/faq: 0 of 0 blocks have valid JSON-LD structure

    https://vuejs.org/about/privacy: 0 of 0 blocks have valid JSON-LD structure

  • Document language: passed · 19/19 applicable observations

    https://vuejs.org/: en-US

    https://vuejs.org/about/coc: en-US

    https://vuejs.org/about/community-guide: en-US

    https://vuejs.org/about/faq: en-US

    https://vuejs.org/about/privacy: en-US

  • Image alternatives declared: passed · 4/4 applicable observations

    https://vuejs.org/about/coc: 0 of 0 images lack an alt attribute

    https://vuejs.org/about/community-guide: 0 of 0 images lack an alt attribute

    https://vuejs.org/about/faq: 0 of 0 images lack an alt attribute

    https://vuejs.org/about/privacy: 0 of 0 images lack an alt attribute

    https://vuejs.org/about/releases: 0 of 0 images lack an alt attribute

  • Form controls named: passed · 3/3 applicable observations

    https://vuejs.org/: 0 of 0 controls have no HTML label

    https://vuejs.org/about/coc: 0 of 0 controls have no HTML label

    https://vuejs.org/about/community-guide: 0 of 0 controls have no HTML label

    https://vuejs.org/about/faq: 0 of 0 controls have no HTML label

    https://vuejs.org/about/privacy: 0 of 0 controls have no HTML label

  • Buttons named: failed · 15/19 applicable observations

    https://vuejs.org/glossary/: 1 of 11 buttons have no HTML name

    https://vuejs.org/guide/introduction: 7 of 22 buttons have no HTML name

    https://vuejs.org/guide/quick-start: 23 of 37 buttons have no HTML name

    https://vuejs.org/guide/scaling-up/tooling: 4 of 18 buttons have no HTML name

    https://vuejs.org/: 0 of 10 buttons have no HTML name

  • Links named: failed · 0/19 applicable observations

    https://vuejs.org/: 14 of 117 links have no HTML name

    https://vuejs.org/about/coc: 14 of 93 links have no HTML name

    https://vuejs.org/about/community-guide: 14 of 122 links have no HTML name

    https://vuejs.org/about/faq: 14 of 128 links have no HTML name

    https://vuejs.org/about/privacy: 14 of 94 links have no HTML name

  • Descriptive link text: failed · 18/19 applicable observations

    https://vuejs.org/about/faq: 1 of 128 links use generic text: "here"

    https://vuejs.org/: 0 of 117 links use generic text

    https://vuejs.org/about/coc: 0 of 93 links use generic text

    https://vuejs.org/about/community-guide: 0 of 122 links use generic text

    https://vuejs.org/about/privacy: 0 of 94 links use generic text

  • Open Graph title: passed · 19/19 applicable observations

    https://vuejs.org/: Vue.js

    https://vuejs.org/about/coc: Vue.js

    https://vuejs.org/about/community-guide: Vue.js

    https://vuejs.org/about/faq: Vue.js

    https://vuejs.org/about/privacy: Vue.js

  • Open Graph description: passed · 19/19 applicable observations

    https://vuejs.org/: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/coc: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/community-guide: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/faq: Vue.js - The Progressive JavaScript Framework

    https://vuejs.org/about/privacy: Vue.js - The Progressive JavaScript Framework

  • Open Graph type: passed · 19/19 applicable observations

    https://vuejs.org/: website

    https://vuejs.org/about/coc: website

    https://vuejs.org/about/community-guide: website

    https://vuejs.org/about/faq: website

    https://vuejs.org/about/privacy: website

  • Open Graph URL: passed · 19/19 applicable observations

    https://vuejs.org/: https://vuejs.org/

    https://vuejs.org/about/coc: https://vuejs.org/

    https://vuejs.org/about/community-guide: https://vuejs.org/

    https://vuejs.org/about/faq: https://vuejs.org/

    https://vuejs.org/about/privacy: https://vuejs.org/

  • Open Graph image URL: passed · 19/19 applicable observations

    https://vuejs.org/: https://vuejs.org/images/logo.png

    https://vuejs.org/about/coc: https://vuejs.org/images/logo.png

    https://vuejs.org/about/community-guide: https://vuejs.org/images/logo.png

    https://vuejs.org/about/faq: https://vuejs.org/images/logo.png

    https://vuejs.org/about/privacy: https://vuejs.org/images/logo.png

  • Open Graph image description: failed · 0/19 applicable observations

    https://vuejs.org/: No sharing image description

    https://vuejs.org/about/coc: No sharing image description

    https://vuejs.org/about/community-guide: No sharing image description

    https://vuejs.org/about/faq: No sharing image description

    https://vuejs.org/about/privacy: No sharing image description

  • Social card type: passed · 19/19 applicable observations

    https://vuejs.org/: summary

    https://vuejs.org/about/coc: summary

    https://vuejs.org/about/community-guide: summary

    https://vuejs.org/about/faq: summary

    https://vuejs.org/about/privacy: summary

  • HTTPS page: passed · 19/19 applicable observations

    https://vuejs.org/: https://vuejs.org/

    https://vuejs.org/about/coc: https://vuejs.org/about/coc

    https://vuejs.org/about/community-guide: https://vuejs.org/about/community-guide

    https://vuejs.org/about/faq: https://vuejs.org/about/faq

    https://vuejs.org/about/privacy: https://vuejs.org/about/privacy

  • No insecure embedded resources: passed · 19/19 applicable observations

    https://vuejs.org/: 0 HTTP embedded resource URL(s)

    https://vuejs.org/about/coc: 0 HTTP embedded resource URL(s)

    https://vuejs.org/about/community-guide: 0 HTTP embedded resource URL(s)

    https://vuejs.org/about/faq: 0 HTTP embedded resource URL(s)

    https://vuejs.org/about/privacy: 0 HTTP embedded resource URL(s)

  • Homepage favicon available: passed · 1/1 applicable observations

    https://vuejs.org/logo.svg: HTTP 200; image/svg+xml

  • Homepage sharing image available: passed · 1/1 applicable observations

    https://vuejs.org/images/logo.png: HTTP 200; image/png

  • Root sitemap available: passed · 1/1 applicable observations

    https://vuejs.org/sitemap.xml: HTTP 200; sitemap root found

  • Rendered color contrast: unverified · 0/1 applicable observations

    https://vuejs.org/: Requires a browser or human assessment; excluded from points.

  • Keyboard and focus behavior: unverified · 0/1 applicable observations

    https://vuejs.org/: Requires a browser or human assessment; excluded from points.

  • HSTS declared: passed · 1/1 applicable observations

    https://vuejs.org/: Strict-Transport-Security: max-age=31536000

  • Content Security Policy declared: passed · 1/1 applicable observations

    https://vuejs.org/: Content-Security-Policy: frame-ancestors https://staging.certification.vuejs.org https://certification.vuejs.org https://certificates.dev https://staging.certificates.dev https://alemira.com https://*.alemira.com

Sample reference: 97a7435e668e697217b45761ff74ddadee352da7a0a57b6ffd025c77b7cdb58f

Diagnostic checklist

20 passed · 13 need work · 3 not verified. Open a check for the evidence and suggested fix.

SEO
79.59
Sharing
88.89
Security
100.00
HTTP response measurement

133 ms median to homepage response headers. Measurements: 133, 226, 100 ms.

Same crawler, three sequential requests, DNS and TLS included. Timing is diagnostic only and never decides a position. This is server/network response, not browser loading or Core Web Vitals.

Static checks inspect crawler-visible HTML; they do not certify accessibility or code quality.

SEO2 to improve
Page titlePassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Give each page a descriptive, non-empty <title>.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Distinct page titlesNeeds work

95/97 applicable observations passed. 0.98/1 checklist weight earned.

How to improve: Use a title that describes the purpose of this page rather than repeating the same title across URLs.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Meta descriptionPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Add a non-empty meta name="description" that summarizes this page.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Self-referencing canonicalNeeds work

0/97 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Declare exactly one <link rel="canonical"> whose absolute URL is this page's own final URL (same scheme, host, path and query; only a trailing slash or fragment may differ). Cross-URL canonicals belong on duplicate pages, not on the indexable page itself. Reference: Google Search Central, canonicalization.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Root sitemap availablePassed

1/1 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Publish a sitemap URL set or index at /sitemap.xml. This checks its root, not every listed URL.

Accessibility5 to improve
Document languagePassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Declare a valid language tag on the html element, such as en or pt-BR.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Image alternatives declaredNeeds work

14/15 applicable observations passed. 0.93/1 checklist weight earned.

How to improve: Add alt text to informative images. Use alt="" for decorative images. This check does not judge text quality.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Form controls namedNeeds work

6/10 applicable observations passed. 0.60/1 checklist weight earned.

How to improve: Associate a label with each visible form control, or provide a non-empty aria-label / valid aria-labelledby.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Buttons namedNeeds work

18/97 applicable observations passed. 0.19/1 checklist weight earned.

How to improve: Give every button visible text or an accessible name, including icon-only buttons.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Rendered color contrastNot verified

0/1 applicable observations passed. Informational; excluded from points.

How to improve: Check foreground/background contrast in the rendered page.

Keyboard and focus behaviorNot verified

0/1 applicable observations passed. Informational; excluded from points.

How to improve: Test every interactive control with a keyboard and inspect focus visibility.

Structure4 to improve
Main headingNeeds work

95/97 applicable observations passed. 0.98/1 checklist weight earned.

How to improve: Add a descriptive H1 identifying the main topic.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Heading hierarchyNeeds work

15/97 applicable observations passed. 0.15/1 checklist weight earned.

How to improve: Nest headings logically without skipping a level, starting with H1.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Main landmarkPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Mark the main content with one <main> or role="main" landmark.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Mobile viewportPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Add meta name="viewport" with width=device-width and do not disable user zoom.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Image dimensions declaredNeeds work

0/15 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Declare width and height attributes (or an inline aspect-ratio style) on every visible <img> so the browser reserves space before the image loads. Reference: web.dev / Lighthouse "image elements have explicit width and height" (layout shift).

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Structured data syntaxNeeds work

0/97 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Provide JSON-LD with @context and @type (or a typed @graph). Match the markup to the visible content; syntax alone does not validate its meaning. Reference: schema.org and Google structured data guidelines.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Sharing1 to improve
Open Graph titlePassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Provide a non-empty og:title meta property.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph descriptionPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Provide a non-empty og:description meta property.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph typePassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Declare og:type, such as website or article.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph URLPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Set og:url to an absolute HTTP(S) URL for this content.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph image URLPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Set og:image to an absolute HTTP(S) image URL. Homepage image availability is checked separately.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph image descriptionNeeds work

0/97 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Describe the sharing image with og:image:alt.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Social card typePassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Declare twitter:card as summary or summary_large_image for a website card.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Homepage favicon availablePassed

1/1 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Serve a non-empty public image with an image Content-Type.

Homepage sharing image availablePassed

1/1 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Serve a non-empty public image with an image Content-Type.

Security0 to improve
HTTPS pagePassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Serve the page over HTTPS with a valid certificate.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

No insecure embedded resourcesPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Use HTTPS for embedded script, image, stylesheet, frame, audio and video URLs.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

HSTS declaredPassed

1/1 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Send Strict-Transport-Security on HTTPS responses with max-age of at least 15552000 seconds (180 days); OWASP recommends one year and includeSubDomains. Reference: OWASP HTTP Strict Transport Security cheat sheet, MDN.

Content Security Policy declaredPassed

1/1 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Send a Content-Security-Policy header (or a <meta http-equiv="Content-Security-Policy"> on the page) that restricts script and resource sources. This check verifies presence, not policy strength. Reference: OWASP Content Security Policy cheat sheet, MDN.

  • https://vuejs.org/Content-Security-Policy: frame-ancestors https://staging.certification.vuejs.org https://certification.vuejs.org https://certificates.dev https://staging.certificates.dev https://alemira.com https://*.alemira.com
AI access1 to improve
Content in initial HTMLNeeds work

95/97 applicable observations passed. 0.98/1 checklist weight earned.

How to improve: Render meaningful main content on the server so readers can access it without executing JavaScript.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Performance0 to improve
HTML transfer budgetPassed

97/97 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Keep the uncompressed HTML at or below 500 KB. Remove duplicated inline payloads and unnecessary markup.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Repeated homepage HTTP responsePassed

1/1 applicable observations passed. Informational; excluded from points.

How to improve: Improve server response and CDN caching. Median of three requests; diagnostic only, never a ranking tiebreak.

  • https://vuejs.org/3/3 successful measurements to response headers. Includes DNS and TLS; excludes rendering.
Browser loading and Core Web VitalsNot verified

0/1 applicable observations passed. Informational; excluded from points.

How to improve: Measure LCP, INP and CLS with browser and field tools.

Checklist quality-v4. Competitive weights: SEO 25%, Accessibility 25%, Structure 25%, Sharing 10%, Security 15%. AI access and Performance are diagnostic only. This expanded report may include pages outside the competitive sample. Unverified scored checks earn no points; not-applicable and manual checks are excluded. Full methodology and references.

HTTP response timings

HTTP response time measured by our crawler; not browser loading speed.

Pages inspected (97)

All 97 pages from this scan.

PageStatusTitleH1ms
https://vuejs.org/200Vue.js - The Progressive JavaScript Framework | Vue.js
Page checklist evidence
  • title: passedVue.js - The Progressive JavaScript Framework | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 117 links have no HTML name
  • link-text: passed0 of 117 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed1061 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed83,785 bytes of HTML; budget 500,000
1535
https://vuejs.org/about/coc200Code Of Conduct | Vue.js
Page checklist evidence
  • title: passedCode Of Conduct | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 93 links have no HTML name
  • link-text: passed0 of 93 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/about/coc
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3406 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed77,275 bytes of HTML; budget 500,000
1259
https://vuejs.org/about/community-guide200Community Guide | Vue.js
Page checklist evidence
  • title: passedCommunity Guide | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 122 links have no HTML name
  • link-text: passed0 of 122 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/about/community-guide
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4870 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed82,613 bytes of HTML; budget 500,000
1298
https://vuejs.org/about/faq200Frequently Asked Questions | Vue.js
Page checklist evidence
  • title: passedFrequently Asked Questions | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 128 links have no HTML name
  • link-text: failed1 of 128 links use generic text: "here"
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/about/faq
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8288 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed86,780 bytes of HTML; budget 500,000
1504
https://vuejs.org/about/privacy200Vue.js Privacy Policy | Vue.js
Page checklist evidence
  • title: passedVue.js Privacy Policy | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 94 links have no HTML name
  • link-text: passed0 of 94 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/about/privacy
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3281 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed77,488 bytes of HTML; budget 500,000
1598
https://vuejs.org/about/releases200Releases | Vue.js
Page checklist evidence
  • title: passedReleases | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 97 links have no HTML name
  • link-text: passed0 of 97 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/about/releases
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4159 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed79,300 bytes of HTML; budget 500,000
1457
https://vuejs.org/about/team200Meet the Team | Vue.js
Page checklist evidence
  • title: passedMeet the Team | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 75 links have no HTML name
  • link-text: passed0 of 75 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/about/team
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed778 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed72,818 bytes of HTML; budget 500,000
1330
https://vuejs.org/api/200API Reference | Vue.js
Page checklist evidence
  • title: passedAPI Reference | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: passed0 of 1 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 280 links have no HTML name
  • link-text: passed0 of 280 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3146 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed96,249 bytes of HTML; budget 500,000
1204
https://vuejs.org/ecosystem/newsletters200Community Newsletters | Vue.js
Page checklist evidence
  • title: passedCommunity Newsletters | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 82 links have no HTML name
  • link-text: passed0 of 82 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/ecosystem/newsletters
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed444 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed73,116 bytes of HTML; budget 500,000
1290
https://vuejs.org/ecosystem/themes200Vue.js
Page checklist evidence
  • title: passedVue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed54 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 53 images lack an alt attribute
  • img-dimensions: failed53 of 53 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 150 links have no HTML name
  • link-text: passed0 of 150 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/ecosystem/themes
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed6279 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed124,289 bytes of HTML; budget 500,000
54345
https://vuejs.org/error-reference/200Production Error Code Reference | Vue.js
Page checklist evidence
  • title: passedProduction Error Code Reference | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 84 links have no HTML name
  • link-text: passed0 of 84 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/error-reference/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4531 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed87,713 bytes of HTML; budget 500,000
1234
https://vuejs.org/examples/200Examples | Vue.js
Page checklist evidence
  • title: passedExamples | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: failed0 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 14 buttons have no HTML name
  • links-named: failed14 of 96 links have no HTML name
  • link-text: passed0 of 96 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/examples/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: failed0 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed76,977 bytes of HTML; budget 500,000
0206
https://vuejs.org/glossary/200Glossary | Vue.js
Page checklist evidence
  • title: passedGlossary | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed1 of 11 buttons have no HTML name
  • links-named: failed14 of 277 links have no HTML name
  • link-text: passed0 of 277 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/glossary/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed22972 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed114,181 bytes of HTML; budget 500,000
1243
https://vuejs.org/guide/introduction200Introduction | Vue.js
Page checklist evidence
  • title: passedIntroduction | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 2 images lack an alt attribute
  • img-dimensions: failed1 of 2 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed7 of 22 buttons have no HTML name
  • links-named: failed14 of 161 links have no HTML name
  • link-text: passed0 of 161 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/introduction
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8746 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed114,346 bytes of HTML; budget 500,000
1325
https://vuejs.org/guide/quick-start200Quick Start | Vue.js
Page checklist evidence
  • title: passedQuick Start | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: passed0 of 12 controls have no HTML label
  • buttons: failed23 of 37 buttons have no HTML name
  • links-named: failed14 of 194 links have no HTML name
  • link-text: passed0 of 194 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/quick-start
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed9988 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed133,694 bytes of HTML; budget 500,000
1180
https://vuejs.org/guide/scaling-up/tooling200Tooling | Vue.js
Page checklist evidence
  • title: passedTooling | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: passed0 of 4 controls have no HTML label
  • buttons: failed4 of 18 buttons have no HTML name
  • links-named: failed14 of 215 links have no HTML name
  • link-text: passed0 of 215 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/scaling-up/tooling
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed7407 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed106,880 bytes of HTML; budget 500,000
1226
https://vuejs.org/partners/200Vue Partners | Vue.js
Page checklist evidence
  • title: passedVue Partners | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 77 links have no HTML name
  • link-text: passed0 of 77 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/partners/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed479 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed71,877 bytes of HTML; budget 500,000
1323
https://vuejs.org/sponsor/200Become a Vue.js Sponsor | Vue.js
Page checklist evidence
  • title: passedBecome a Vue.js Sponsor | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 101 links have no HTML name
  • link-text: passed0 of 101 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/sponsor/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3526 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed78,497 bytes of HTML; budget 500,000
1187
https://vuejs.org/tutorial/200Tutorial | Vue.js
Page checklist evidence
  • title: passedTutorial | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: failed0 H1 element(s)
  • headings: failed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 73 links have no HTML name
  • link-text: passed0 of 73 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/tutorial/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: failed0 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed70,207 bytes of HTML; budget 500,000
0276
https://vuejs.org/translations/200Translations | Vue.js
Page checklist evidence
  • title: passedTranslations | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 114 links have no HTML name
  • link-text: passed0 of 114 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/translations/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed931 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed75,728 bytes of HTML; budget 500,000
1198
https://vuejs.org/guide/extras/rendering-mechanism200Rendering Mechanism | Vue.js
Page checklist evidence
  • title: passedRendering Mechanism | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed10 of 24 buttons have no HTML name
  • links-named: failed14 of 157 links have no HTML name
  • link-text: passed0 of 157 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/rendering-mechanism
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed9360 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed111,764 bytes of HTML; budget 500,000
1340
https://vuejs.org/guide/best-practices/performance200Performance | Vue.js
Page checklist evidence
  • title: passedPerformance | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed8 of 22 buttons have no HTML name
  • links-named: failed14 of 189 links have no HTML name
  • link-text: passed0 of 189 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/best-practices/performance
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed11856 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed117,693 bytes of HTML; budget 500,000
1223
https://vuejs.org/guide/scaling-up/sfc200Single-File Components | Vue.js
Page checklist evidence
  • title: passedSingle-File Components | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed3 of 17 buttons have no HTML name
  • links-named: failed14 of 153 links have no HTML name
  • link-text: passed0 of 153 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/scaling-up/sfc
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4235 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed98,896 bytes of HTML; budget 500,000
1238
https://vuejs.org/guide/reusability/composables200Composables | Vue.js
Page checklist evidence
  • title: passedComposables | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed17 of 31 buttons have no HTML name
  • links-named: failed14 of 179 links have no HTML name
  • link-text: passed0 of 179 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/reusability/composables
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed15252 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed143,132 bytes of HTML; budget 500,000
1208
https://vuejs.org/guide/extras/composition-api-faq200Composition API FAQ | Vue.js
Page checklist evidence
  • title: passedComposition API FAQ | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 2 images lack an alt attribute
  • img-dimensions: failed1 of 2 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed1 of 15 buttons have no HTML name
  • links-named: failed14 of 178 links have no HTML name
  • link-text: passed0 of 178 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/composition-api-faq
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed11963 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed109,098 bytes of HTML; budget 500,000
1321
https://vuejs.org/guide/extras/web-components200Vue and Web Components | Vue.js
Page checklist evidence
  • title: passedVue and Web Components | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed20 of 34 buttons have no HTML name
  • links-named: failed14 of 177 links have no HTML name
  • link-text: passed0 of 177 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/web-components
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed20626 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed156,314 bytes of HTML; budget 500,000
1416
https://vuejs.org/api/application200Application API | Vue.js
Page checklist evidence
  • title: passedApplication API | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed39 of 51 buttons have no HTML name
  • links-named: failed14 of 178 links have no HTML name
  • link-text: passed0 of 178 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/application
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed14576 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed145,920 bytes of HTML; budget 500,000
1316
https://vuejs.org/api/general200Global API: General | Vue.js
Page checklist evidence
  • title: passedGlobal API: General | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed10 of 22 buttons have no HTML name
  • links-named: failed14 of 123 links have no HTML name
  • link-text: passed0 of 123 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/general
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5346 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed107,644 bytes of HTML; budget 500,000
1559
https://vuejs.org/api/composition-api-setup200Composition API: setup() | Vue.js
Page checklist evidence
  • title: passedComposition API: setup() | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed8 of 20 buttons have no HTML name
  • links-named: failed14 of 127 links have no HTML name
  • link-text: passed0 of 127 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/composition-api-setup
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4831 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed101,854 bytes of HTML; budget 500,000
1260
https://vuejs.org/api/reactivity-core200Reactivity API: Core | Vue.js
Page checklist evidence
  • title: passedReactivity API: Core | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed33 of 45 buttons have no HTML name
  • links-named: failed14 of 159 links have no HTML name
  • link-text: passed0 of 159 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/reactivity-core
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed13118 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed151,733 bytes of HTML; budget 500,000
1301
https://vuejs.org/api/reactivity-utilities200Reactivity API: Utilities | Vue.js
Page checklist evidence
  • title: passedReactivity API: Utilities | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed19 of 31 buttons have no HTML name
  • links-named: failed14 of 146 links have no HTML name
  • link-text: passed0 of 146 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/reactivity-utilities
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5764 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed115,406 bytes of HTML; budget 500,000
1310
https://vuejs.org/api/reactivity-advanced200Reactivity API: Advanced | Vue.js
Page checklist evidence
  • title: passedReactivity API: Advanced | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed20 of 32 buttons have no HTML name
  • links-named: failed14 of 143 links have no HTML name
  • link-text: passed0 of 143 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/reactivity-advanced
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8647 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed121,838 bytes of HTML; budget 500,000
1346
https://vuejs.org/api/composition-api-lifecycle200Composition API: Lifecycle Hooks | Vue.js
Page checklist evidence
  • title: passedComposition API: Lifecycle Hooks | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed16 of 28 buttons have no HTML name
  • links-named: failed14 of 144 links have no HTML name
  • link-text: passed0 of 144 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/composition-api-lifecycle
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed9021 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed119,097 bytes of HTML; budget 500,000
1194
https://vuejs.org/api/composition-api-dependency-injection200Composition API: Dependency Injection | Vue.js
Page checklist evidence
  • title: passedComposition API: Dependency Injection | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed5 of 17 buttons have no HTML name
  • links-named: failed14 of 119 links have no HTML name
  • link-text: passed0 of 119 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/composition-api-dependency-injection
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3501 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed96,635 bytes of HTML; budget 500,000
1306
https://vuejs.org/api/composition-api-helpers200Composition API: Helpers | Vue.js
Page checklist evidence
  • title: passedComposition API: Helpers | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed8 of 20 buttons have no HTML name
  • links-named: failed14 of 127 links have no HTML name
  • link-text: passed0 of 127 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/composition-api-helpers
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3340 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed99,855 bytes of HTML; budget 500,000
1306
https://vuejs.org/api/options-state200Options: State | Vue.js
Page checklist evidence
  • title: passedOptions: State | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed18 of 30 buttons have no HTML name
  • links-named: failed14 of 139 links have no HTML name
  • link-text: passed0 of 139 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/options-state
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed11653 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed137,776 bytes of HTML; budget 500,000
1319
https://vuejs.org/api/options-rendering200Options: Rendering | Vue.js
Page checklist evidence
  • title: passedOptions: Rendering | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed4 of 16 buttons have no HTML name
  • links-named: failed14 of 122 links have no HTML name
  • link-text: passed0 of 122 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/options-rendering
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3161 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed94,367 bytes of HTML; budget 500,000
1328
https://vuejs.org/api/options-lifecycle200Options: Lifecycle | Vue.js
Page checklist evidence
  • title: passedOptions: Lifecycle | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed15 of 27 buttons have no HTML name
  • links-named: failed14 of 148 links have no HTML name
  • link-text: passed0 of 148 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/options-lifecycle
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed9267 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed114,233 bytes of HTML; budget 500,000
1341
https://vuejs.org/api/options-composition200Options: Composition | Vue.js
Page checklist evidence
  • title: passedOptions: Composition | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed15 of 27 buttons have no HTML name
  • links-named: failed14 of 123 links have no HTML name
  • link-text: passed0 of 123 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/options-composition
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5325 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed105,488 bytes of HTML; budget 500,000
1341
https://vuejs.org/api/options-misc200Options: Misc | Vue.js
Page checklist evidence
  • title: passedOptions: Misc | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed9 of 21 buttons have no HTML name
  • links-named: failed14 of 123 links have no HTML name
  • link-text: passed0 of 123 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/options-misc
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3369 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed97,201 bytes of HTML; budget 500,000
1292
https://vuejs.org/api/component-instance200Component Instance | Vue.js
Page checklist evidence
  • title: passedComponent Instance | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed19 of 31 buttons have no HTML name
  • links-named: failed14 of 160 links have no HTML name
  • link-text: passed0 of 160 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/component-instance
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed6677 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed113,370 bytes of HTML; budget 500,000
1301
https://vuejs.org/api/built-in-directives200Built-in Directives | Vue.js
Page checklist evidence
  • title: passedBuilt-in Directives | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed19 of 31 buttons have no HTML name
  • links-named: failed14 of 170 links have no HTML name
  • link-text: passed0 of 170 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/built-in-directives
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed14861 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed143,593 bytes of HTML; budget 500,000
1388
https://vuejs.org/api/built-in-components200Built-in Components | Vue.js
Page checklist evidence
  • title: passedBuilt-in Components | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed19 of 31 buttons have no HTML name
  • links-named: failed14 of 129 links have no HTML name
  • link-text: passed0 of 129 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/built-in-components
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed7311 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed121,383 bytes of HTML; budget 500,000
1243
https://vuejs.org/api/built-in-special-elements200Built-in Special Elements | Vue.js
Page checklist evidence
  • title: passedBuilt-in Special Elements | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed7 of 19 buttons have no HTML name
  • links-named: failed14 of 124 links have no HTML name
  • link-text: passed0 of 124 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/built-in-special-elements
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4174 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed98,527 bytes of HTML; budget 500,000
1336
https://vuejs.org/api/built-in-special-attributes200Built-in Special Attributes | Vue.js
Page checklist evidence
  • title: passedBuilt-in Special Attributes | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed6 of 18 buttons have no HTML name
  • links-named: failed14 of 124 links have no HTML name
  • link-text: passed0 of 124 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/built-in-special-attributes
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3084 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed92,715 bytes of HTML; budget 500,000
1320
https://vuejs.org/api/sfc-spec200SFC Syntax Specification | Vue.js
Page checklist evidence
  • title: passedSFC Syntax Specification | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed7 of 19 buttons have no HTML name
  • links-named: failed14 of 138 links have no HTML name
  • link-text: passed0 of 138 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/sfc-spec
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4329 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed97,650 bytes of HTML; budget 500,000
1302
https://vuejs.org/api/sfc-script-setup200<script setup> | Vue.js
Page checklist evidence
  • title: passed<script setup> | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed33 of 45 buttons have no HTML name
  • links-named: failed14 of 156 links have no HTML name
  • link-text: passed0 of 156 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/sfc-script-setup
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed18594 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed156,832 bytes of HTML; budget 500,000
1301
https://vuejs.org/api/sfc-css-features200SFC CSS Features | Vue.js
Page checklist evidence
  • title: passedSFC CSS Features | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed13 of 25 buttons have no HTML name
  • links-named: failed14 of 127 links have no HTML name
  • link-text: passed0 of 127 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/sfc-css-features
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4775 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed107,690 bytes of HTML; budget 500,000
1394
https://vuejs.org/api/custom-elements200Custom Elements API | Vue.js
Page checklist evidence
  • title: passedCustom Elements API | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed3 of 15 buttons have no HTML name
  • links-named: failed14 of 121 links have no HTML name
  • link-text: passed0 of 121 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/custom-elements
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed2197 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed90,176 bytes of HTML; budget 500,000
1316
https://vuejs.org/api/render-function200Render Function APIs | Vue.js
Page checklist evidence
  • title: passedRender Function APIs | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed16 of 28 buttons have no HTML name
  • links-named: failed14 of 130 links have no HTML name
  • link-text: passed0 of 130 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/render-function
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed6307 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed116,866 bytes of HTML; budget 500,000
1391
https://vuejs.org/api/ssr200Server-Side Rendering API | Vue.js
Page checklist evidence
  • title: passedServer-Side Rendering API | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed16 of 28 buttons have no HTML name
  • links-named: failed14 of 136 links have no HTML name
  • link-text: passed0 of 136 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/ssr
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4141 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed106,753 bytes of HTML; budget 500,000
1342
https://vuejs.org/api/utility-types200Utility Types | Vue.js
Page checklist evidence
  • title: passedUtility Types | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed10 of 22 buttons have no HTML name
  • links-named: failed14 of 138 links have no HTML name
  • link-text: passed0 of 138 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/utility-types
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3729 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed101,963 bytes of HTML; budget 500,000
1250
https://vuejs.org/api/custom-renderer200Custom Renderer API | Vue.js
Page checklist evidence
  • title: passedCustom Renderer API | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed2 of 14 buttons have no HTML name
  • links-named: failed14 of 112 links have no HTML name
  • link-text: passed0 of 112 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/custom-renderer
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed2028 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed96,601 bytes of HTML; budget 500,000
1307
https://vuejs.org/api/compile-time-flags200Compile-Time Flags | Vue.js
Page checklist evidence
  • title: passedCompile-Time Flags | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed4 of 16 buttons have no HTML name
  • links-named: failed14 of 127 links have no HTML name
  • link-text: passed0 of 127 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/api/compile-time-flags
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed2667 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed92,620 bytes of HTML; budget 500,000
1317
https://vuejs.org/guide/components/async200Async Components | Vue.js
Page checklist evidence
  • title: passedAsync Components | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed13 of 27 buttons have no HTML name
  • links-named: failed14 of 152 links have no HTML name
  • link-text: passed0 of 152 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/async
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5991 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed112,084 bytes of HTML; budget 500,000
1344
https://vuejs.org/guide/essentials/component-basics200Components Basics | Vue.js
Page checklist evidence
  • title: passedComponents Basics | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed38 of 52 buttons have no HTML name
  • links-named: failed14 of 183 links have no HTML name
  • link-text: passed0 of 183 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/component-basics
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed15589 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed158,122 bytes of HTML; budget 500,000
1225
https://vuejs.org/guide/essentials/template-syntax200Template Syntax | Vue.js
Page checklist evidence
  • title: passedTemplate Syntax | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed20 of 34 buttons have no HTML name
  • links-named: failed14 of 171 links have no HTML name
  • link-text: passed0 of 171 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/template-syntax
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed10897 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed121,636 bytes of HTML; budget 500,000
1192
https://vuejs.org/guide/reusability/custom-directives200Custom Directives | Vue.js
Page checklist evidence
  • title: passedCustom Directives | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed18 of 32 buttons have no HTML name
  • links-named: failed14 of 150 links have no HTML name
  • link-text: passed0 of 150 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/reusability/custom-directives
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed6978 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed116,996 bytes of HTML; budget 500,000
1304
https://vuejs.org/guide/essentials/event-handling200Event Handling | Vue.js
Page checklist evidence
  • title: passedEvent Handling | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed18 of 32 buttons have no HTML name
  • links-named: failed14 of 165 links have no HTML name
  • link-text: passed0 of 165 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/event-handling
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8533 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed126,779 bytes of HTML; budget 500,000
1344
https://vuejs.org/guide/components/events200Component Events | Vue.js
Page checklist evidence
  • title: passedComponent Events | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed19 of 33 buttons have no HTML name
  • links-named: failed14 of 150 links have no HTML name
  • link-text: passed0 of 150 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/events
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5732 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed117,968 bytes of HTML; budget 500,000
1291
https://vuejs.org/guide/extras/render-function200Render Functions & JSX | Vue.js
Page checklist evidence
  • title: passedRender Functions & JSX | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed59 of 73 buttons have no HTML name
  • links-named: failed14 of 194 links have no HTML name
  • link-text: passed0 of 194 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/render-function
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed18431 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed195,756 bytes of HTML; budget 500,000
1407
https://vuejs.org/guide/essentials/application200Creating a Vue Application | Vue.js
Page checklist evidence
  • title: passedCreating a Vue Application | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed10 of 24 buttons have no HTML name
  • links-named: failed14 of 146 links have no HTML name
  • link-text: passed0 of 146 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/application
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4054 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed100,838 bytes of HTML; budget 500,000
1190
https://vuejs.org/guide/essentials/lifecycle200Lifecycle Hooks | Vue.js
Page checklist evidence
  • title: passedLifecycle Hooks | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed3 of 17 buttons have no HTML name
  • links-named: failed14 of 144 links have no HTML name
  • link-text: passed0 of 144 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/lifecycle
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed2122 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed93,400 bytes of HTML; budget 500,000
1383
https://vuejs.org/guide/components/slots200Slots | Vue.js
Page checklist evidence
  • title: passedSlots | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 3 images lack an alt attribute
  • img-dimensions: failed3 of 3 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed33 of 47 buttons have no HTML name
  • links-named: failed14 of 174 links have no HTML name
  • link-text: passed0 of 174 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/slots
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed13574 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed162,610 bytes of HTML; budget 500,000
1285
https://vuejs.org/guide/reusability/plugins200Plugins | Vue.js
Page checklist evidence
  • title: passedPlugins | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed9 of 23 buttons have no HTML name
  • links-named: failed14 of 148 links have no HTML name
  • link-text: passed0 of 148 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/reusability/plugins
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3661 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed102,182 bytes of HTML; budget 500,000
1339
https://vuejs.org/guide/components/props200Props | Vue.js
Page checklist evidence
  • title: passedProps | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed47 of 61 buttons have no HTML name
  • links-named: failed14 of 175 links have no HTML name
  • link-text: passed0 of 175 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/props
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed17074 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed161,823 bytes of HTML; budget 500,000
1239
https://vuejs.org/guide/components/provide-inject200Provide / Inject | Vue.js
Page checklist evidence
  • title: passedProvide / Inject | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 2 images lack an alt attribute
  • img-dimensions: failed2 of 2 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed23 of 37 buttons have no HTML name
  • links-named: failed14 of 163 links have no HTML name
  • link-text: passed0 of 163 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/provide-inject
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed9368 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed127,582 bytes of HTML; budget 500,000
1391
https://vuejs.org/guide/extras/reactivity-in-depth200Reactivity in Depth | Vue.js
Page checklist evidence
  • title: passedReactivity in Depth | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed22 of 36 buttons have no HTML name
  • links-named: failed14 of 192 links have no HTML name
  • link-text: passed0 of 192 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/reactivity-in-depth
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed17973 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed154,845 bytes of HTML; budget 500,000
1628
https://vuejs.org/guide/essentials/reactivity-fundamentals200Reactivity Fundamentals | Vue.js
Page checklist evidence
  • title: passedReactivity Fundamentals | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed36 of 50 buttons have no HTML name
  • links-named: failed14 of 190 links have no HTML name
  • link-text: passed0 of 190 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/reactivity-fundamentals
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed15997 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed153,801 bytes of HTML; budget 500,000
1725
https://vuejs.org/guide/essentials/watchers200Watchers | Vue.js
Page checklist evidence
  • title: passedWatchers | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed34 of 48 buttons have no HTML name
  • links-named: failed14 of 163 links have no HTML name
  • link-text: passed0 of 163 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/watchers
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed15068 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed159,504 bytes of HTML; budget 500,000
1205
https://vuejs.org/guide/essentials/template-refs200Template Refs | Vue.js
Page checklist evidence
  • title: passedTemplate Refs | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed15 of 29 buttons have no HTML name
  • links-named: failed14 of 146 links have no HTML name
  • link-text: passed0 of 146 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/template-refs
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed7197 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed124,817 bytes of HTML; budget 500,000
1208
https://vuejs.org/guide/essentials/computed200Computed Properties | Vue.js
Page checklist evidence
  • title: passedComputed Properties | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed17 of 31 buttons have no HTML name
  • links-named: failed14 of 152 links have no HTML name
  • link-text: passed0 of 152 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/computed
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8591 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed127,912 bytes of HTML; budget 500,000
1283
https://vuejs.org/guide/essentials/class-and-style200Class and Style Bindings | Vue.js
Page checklist evidence
  • title: passedClass and Style Bindings | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed37 of 51 buttons have no HTML name
  • links-named: failed14 of 151 links have no HTML name
  • link-text: passed0 of 151 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/class-and-style
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed6602 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed126,218 bytes of HTML; budget 500,000
1369
https://vuejs.org/guide/essentials/conditional200Conditional Rendering | Vue.js
Page checklist evidence
  • title: passedConditional Rendering | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed2 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed5 of 20 buttons have no HTML name
  • links-named: failed14 of 152 links have no HTML name
  • link-text: passed0 of 152 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/conditional
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed2912 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed100,141 bytes of HTML; budget 500,000
2310
https://vuejs.org/guide/essentials/list200List Rendering | Vue.js
Page checklist evidence
  • title: passedList Rendering | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed32 of 46 buttons have no HTML name
  • links-named: failed14 of 163 links have no HTML name
  • link-text: passed0 of 163 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/list
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed9522 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed141,413 bytes of HTML; budget 500,000
1191
https://vuejs.org/guide/essentials/forms200Form Input Bindings | Vue.js
Page checklist evidence
  • title: passedForm Input Bindings | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: failed5 of 11 controls have no HTML label
  • buttons: failed23 of 37 buttons have no HTML name
  • links-named: failed14 of 187 links have no HTML name
  • link-text: passed0 of 187 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/essentials/forms
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8114 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed140,409 bytes of HTML; budget 500,000
1195
https://vuejs.org/guide/components/registration200Component Registration | Vue.js
Page checklist evidence
  • title: passedComponent Registration | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed8 of 22 buttons have no HTML name
  • links-named: failed14 of 142 links have no HTML name
  • link-text: passed0 of 142 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/registration
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4170 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed100,716 bytes of HTML; budget 500,000
1342
https://vuejs.org/guide/components/v-model200Component v-model | Vue.js
Page checklist evidence
  • title: passedComponent v-model | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed35 of 49 buttons have no HTML name
  • links-named: failed14 of 157 links have no HTML name
  • link-text: passed0 of 157 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/v-model
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed11986 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed167,538 bytes of HTML; budget 500,000
1334
https://vuejs.org/guide/components/attrs200Fallthrough Attributes | Vue.js
Page checklist evidence
  • title: passedFallthrough Attributes | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed17 of 31 buttons have no HTML name
  • links-named: failed14 of 152 links have no HTML name
  • link-text: passed0 of 152 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/components/attrs
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5877 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed109,501 bytes of HTML; budget 500,000
1350
https://vuejs.org/guide/built-ins/transition200Transition | Vue.js
Page checklist evidence
  • title: passedTransition | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: passed0 of 2 controls have no HTML label
  • buttons: failed28 of 49 buttons have no HTML name
  • links-named: failed14 of 190 links have no HTML name
  • link-text: passed0 of 190 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/built-ins/transition
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed17244 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed167,710 bytes of HTML; budget 500,000
1208
https://vuejs.org/guide/built-ins/transition-group200TransitionGroup | Vue.js
Page checklist evidence
  • title: passedTransitionGroup | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: failed1 of 1 controls have no HTML label
  • buttons: failed5 of 24 buttons have no HTML name
  • links-named: failed14 of 149 links have no HTML name
  • link-text: passed0 of 149 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/built-ins/transition-group
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3092 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed104,100 bytes of HTML; budget 500,000
1187
https://vuejs.org/guide/built-ins/keep-alive200KeepAlive | Vue.js
Page checklist evidence
  • title: passedKeepAlive | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: passed0 of 4 controls have no HTML label
  • buttons: failed6 of 22 buttons have no HTML name
  • links-named: failed14 of 151 links have no HTML name
  • link-text: passed0 of 151 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/built-ins/keep-alive
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed4110 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed103,412 bytes of HTML; budget 500,000
1206
https://vuejs.org/guide/built-ins/teleport200Teleport | Vue.js
Page checklist evidence
  • title: passedTeleport | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed8 of 23 buttons have no HTML name
  • links-named: failed14 of 148 links have no HTML name
  • link-text: passed0 of 148 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/built-ins/teleport
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5826 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed112,716 bytes of HTML; budget 500,000
1389
https://vuejs.org/guide/built-ins/suspense200Suspense | Vue.js
Page checklist evidence
  • title: passedSuspense | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed7 of 21 buttons have no HTML name
  • links-named: failed14 of 156 links have no HTML name
  • link-text: passed0 of 156 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/built-ins/suspense
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed7281 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed109,238 bytes of HTML; budget 500,000
1293
https://vuejs.org/guide/scaling-up/routing200Routing | Vue.js
Page checklist evidence
  • title: passedRouting | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed2 of 16 buttons have no HTML name
  • links-named: failed14 of 149 links have no HTML name
  • link-text: passed0 of 149 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/scaling-up/routing
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed2728 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed102,652 bytes of HTML; budget 500,000
1334
https://vuejs.org/guide/scaling-up/state-management200State Management | Vue.js
Page checklist evidence
  • title: passedState Management | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed11 of 25 buttons have no HTML name
  • links-named: failed14 of 151 links have no HTML name
  • link-text: passed0 of 151 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/scaling-up/state-management
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed6178 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed112,319 bytes of HTML; budget 500,000
1292
https://vuejs.org/guide/scaling-up/testing200Testing | Vue.js
Page checklist evidence
  • title: passedTesting | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: failed1 of 1 images lack an alt attribute
  • img-dimensions: failed1 of 1 images lack width/height attributes or an aspect-ratio style
  • labels: passed0 of 3 controls have no HTML label
  • buttons: failed15 of 29 buttons have no HTML name
  • links-named: failed14 of 194 links have no HTML name
  • link-text: passed0 of 194 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/scaling-up/testing
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed19568 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed140,853 bytes of HTML; budget 500,000
1313
https://vuejs.org/guide/scaling-up/ssr200Server-Side Rendering (SSR) | Vue.js
Page checklist evidence
  • title: passedServer-Side Rendering (SSR) | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed13 of 27 buttons have no HTML name
  • links-named: failed14 of 187 links have no HTML name
  • link-text: passed0 of 187 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/scaling-up/ssr
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed17702 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed132,044 bytes of HTML; budget 500,000
1353
https://vuejs.org/guide/best-practices/production-deployment200Production Deployment | Vue.js
Page checklist evidence
  • title: passedProduction Deployment | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed1 of 15 buttons have no HTML name
  • links-named: failed14 of 149 links have no HTML name
  • link-text: passed0 of 149 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/best-practices/production-deployment
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed1823 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed92,307 bytes of HTML; budget 500,000
1200
https://vuejs.org/guide/best-practices/accessibility200Accessibility | Vue.js
Page checklist evidence
  • title: passedAccessibility | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: passed0 of 5 images lack an alt attribute
  • img-dimensions: failed5 of 5 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed22 of 36 buttons have no HTML name
  • links-named: failed14 of 215 links have no HTML name
  • link-text: passed0 of 215 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/best-practices/accessibility
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed14900 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed168,796 bytes of HTML; budget 500,000
1370
https://vuejs.org/guide/best-practices/security200Security | Vue.js
Page checklist evidence
  • title: passedSecurity | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed14 of 28 buttons have no HTML name
  • links-named: failed14 of 159 links have no HTML name
  • link-text: passed0 of 159 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/best-practices/security
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed8862 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed109,494 bytes of HTML; budget 500,000
1218
https://vuejs.org/guide/typescript/overview200Using Vue with TypeScript | Vue.js
Page checklist evidence
  • title: passedUsing Vue with TypeScript | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed6 of 20 buttons have no HTML name
  • links-named: failed14 of 189 links have no HTML name
  • link-text: passed0 of 189 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/typescript/overview
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed7608 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed111,934 bytes of HTML; budget 500,000
1484
https://vuejs.org/guide/typescript/composition-api200TypeScript with Composition API | Vue.js
Page checklist evidence
  • title: passedTypeScript with Composition API | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed35 of 49 buttons have no HTML name
  • links-named: failed14 of 165 links have no HTML name
  • link-text: passed0 of 165 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/typescript/composition-api
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed14420 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed158,000 bytes of HTML; budget 500,000
1357
https://vuejs.org/guide/typescript/options-api200TypeScript with Options API | Vue.js
Page checklist evidence
  • title: passedTypeScript with Options API | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: failed13 of 27 buttons have no HTML name
  • links-named: failed14 of 158 links have no HTML name
  • link-text: passed0 of 158 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/typescript/options-api
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed7597 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed124,534 bytes of HTML; budget 500,000
1316
https://vuejs.org/guide/extras/ways-of-using-vue200Ways of Using Vue | Vue.js
Page checklist evidence
  • title: passedWays of Using Vue | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 14 buttons have no HTML name
  • links-named: failed14 of 163 links have no HTML name
  • link-text: passed0 of 163 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/ways-of-using-vue
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed5095 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed95,008 bytes of HTML; budget 500,000
1316
https://vuejs.org/guide/extras/animation200Animation Techniques | Vue.js
Page checklist evidence
  • title: passedAnimation Techniques | Vue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: failed1 of 1 controls have no HTML label
  • buttons: failed12 of 27 buttons have no HTML name
  • links-named: failed14 of 142 links have no HTML name
  • link-text: passed0 of 142 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/guide/extras/animation
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed3186 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed113,807 bytes of HTML; budget 500,000
1189
https://vuejs.org/partners/all200Vue.js
Page checklist evidence
  • title: passedVue.js
  • description: passedVue.js - The Progressive JavaScript Framework
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden-US
  • alt: not-applicable0 of 0 images lack an alt attribute
  • img-dimensions: not-applicable0 of 0 images lack width/height attributes or an aspect-ratio style
  • labels: failed1 of 1 controls have no HTML label
  • buttons: passed0 of 10 buttons have no HTML name
  • links-named: failed14 of 75 links have no HTML name
  • link-text: passed0 of 75 links use generic text
  • viewport: passedwidth=device-width,initial-scale=1
  • https: passedhttps://vuejs.org/partners/all
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVue.js
  • og-description: passedVue.js - The Progressive JavaScript Framework
  • og-type: passedwebsite
  • og-url: passedhttps://vuejs.org/
  • og-image: passedhttps://vuejs.org/images/logo.png
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary
  • readable: passed412 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed71,793 bytes of HTML; budget 500,000
1244
Optional AI signals

Informational signals; these do not certify search visibility or unlock S-Tier.

  • llms.txtGuide for AI agents
  • Structured dataJSON-LD on the homepage
  • Semantic HTMLMain and navigation landmarks
Browser measurements · supplementary

Mobile page report

vuejs.org

https://vuejs.org/

Measured · 10/18/2026, 4:09:45 AM UTC

Speed
91
Accessibility
91
SEO basics
100
Main content (LCP)
3.4 s
Layout shifts (CLS)
0
Blocking time (TBT)
0 ms

Your next improvements

Measured findings to investigate, ordered by audit score.

1. Links rely on color to be distinguishable.

Low-contrast text is difficult or impossible for many users to read. Link text that is discernible improves the experience for users with low vision. [Learn how to make links distinguishable](https://dequeuniversity.com/rules/axe/4.13/link-in-text-block).

div.VPContentPage > div.VPFooter > p.license > a.vt-link · <a class="vt-link link link" href="https://opensource.org/licenses/MIT" target="_blank" rel="noopener noreferrer" data-v-2feeab56="">
2. Network dependency tree

[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.

3. Background and foreground colors do not have a sufficient contrast ratio.

Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.13/color-contrast).

div > div > section#hero > p.description · <p class="description" data-v-7d4b747f="">
div > section#hero > p.actions > a#vuemastery-action · <a id="vuemastery-action" class="why-vue" href="javascript:;" data-v-bf2d099b="">
div > section#special-spsr > span > a · <a href="/sponsor/#tier-benefits" data-v-7d4b747f="">
4. Heading elements are not in a sequentially-descending order

Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. [Learn more about heading order](https://dequeuniversity.com/rules/axe/4.13/heading-order).

section#sitemap > div.container > div.sitemap-col > h4 · <h4>
5. Largest Contentful Paint

Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

6. First Contentful Paint

First Contentful Paint marks the time at which the first text or image is painted. [Learn more about the First Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/first-contentful-paint/).

7. Time to Interactive

Time to Interactive is the amount of time it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/interactive/).

8. Speed Index

Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

Fix with your coding assistant

Copy a ready-to-use prompt with the issues and affected URLs.

Battle scoring rules

The arena winner follows the verified ranking: internal link health first, then the published two-decimal quality score. Both sites need two agreeing standard observations. Browser performance, accessibility and SEO are complementary diagnostics and do not move the ranking or decide its winner. Page-only battles compare compatible rounds; performance differences up to five points draw, and equal round wins remain a tie. Missing measurements never count as zero. Browser audits do not certify accessibility. Saved results keep their measured evidence; start a rematch for a newer comparison.