Website report

Angular

angular.dev ↗·🇺🇸 United States · Tech & dev tools

Measured

Global rank#129
GradeA

Your result

No broken links found in this sample.

Link health
100.00/100

Healthy links in the sample

Quality checklist
75.26/100

Scored technical checks

Broken links
0

Confirmed in sample

110 links verified · 6 unknown · 15 selected source pages · 95% 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 1 diagnostic broken link

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

  2. 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).

  3. Structured data syntax

    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.

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).
  • 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.

100.00/100 link health · 75.26/100 quality · 110 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.
1 diagnostic broken links100 pages readExtended evidence may include links outside the badge sample.
Latest competitive sample and evidence · 75.26/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.

15 selected source URLs · 116 internal destinations. 110 evaluated · 6 unknown · 0 using previous evidence. The expanded diagnostic report follows below.

SEO
92.00/100
Accessibility
78.72/100
Structure
53.33/100
Sharing
80.00/100
Security
75.00/100
Selected pages
  • https://angular.dev/
  • https://angular.dev/docs
  • https://angular.dev/license
  • https://angular.dev/playground
  • https://angular.dev/press-kit
  • https://angular.dev/reference
  • https://angular.dev/roadmap
  • https://angular.dev/tutorials
  • https://angular.dev/ai
  • https://angular.dev/ai/develop-with-ai
  • https://angular.dev/essentials
  • https://angular.dev/essentials/signals
  • https://angular.dev/events/v22
  • https://angular.dev/overview
  • https://angular.dev/tutorials/learn-angular
Internal link verdicts and weights
  • ok · weight 6 · https://angular.dev/
  • ok · weight 6 · https://angular.dev/ai/agent-skills
  • ok · weight 6 · https://angular.dev/ai/develop-with-ai
  • ok · weight 6 · https://angular.dev/api
  • ok · weight 6 · https://angular.dev/docs
  • ok · weight 6 · https://angular.dev/essentials/components
  • ok · weight 6 · https://angular.dev/essentials/templates
  • ok · weight 6 · https://angular.dev/guide/signals
  • ok · weight 6 · https://angular.dev/license
  • ok · weight 6 · https://angular.dev/playground
  • ok · weight 6 · https://angular.dev/press-kit
  • ok · weight 6 · https://angular.dev/reference
  • ok · weight 6 · https://angular.dev/roadmap
  • ok · weight 6 · https://angular.dev/tutorials
  • unverifiable · weight 6 · https://blog.angular.dev/
  • ok · weight 4 · https://angular.dev/ai
  • ok · weight 4 · https://angular.dev/essentials
  • ok · weight 4 · https://angular.dev/essentials/signals
  • ok · weight 4 · https://angular.dev/events/v22
  • ok · weight 4 · https://angular.dev/overview
  • ok · weight 4 · https://angular.dev/tutorials/learn-angular
  • ok · weight 2 · https://angular.dev/ai/ai-tutor
  • ok · weight 2 · https://angular.dev/ai/design-patterns
  • ok · weight 2 · https://angular.dev/ai/mcp
  • ok · weight 2 · https://angular.dev/ai/webmcp
  • ok · weight 2 · https://angular.dev/api/common/NgClass
  • ok · weight 2 · https://angular.dev/api/common/NgForOf
  • ok · weight 2 · https://angular.dev/api/common/NgIf
  • ok · weight 2 · https://angular.dev/api/common/NgOptimizedImage
  • ok · weight 2 · https://angular.dev/api/common/NgStyle
  • ok · weight 2 · https://angular.dev/api/common/NgSwitch
  • ok · weight 2 · https://angular.dev/api/common/http/httpResource
  • ok · weight 2 · https://angular.dev/api/core/@let
  • ok · weight 2 · https://angular.dev/api/core/ChangeDetectionStrategy
  • ok · weight 2 · https://angular.dev/api/core/Component
  • ok · weight 2 · https://angular.dev/api/core/Directive
  • ok · weight 2 · https://angular.dev/api/core/HostBinding
  • ok · weight 2 · https://angular.dev/api/core/HostListener
  • ok · weight 2 · https://angular.dev/api/core/Injectable
  • ok · weight 2 · https://angular.dev/api/core/Service
  • ok · weight 2 · https://angular.dev/api/core/Signal
  • ok · weight 2 · https://angular.dev/api/core/computed
  • ok · weight 2 · https://angular.dev/api/core/effect
  • ok · weight 2 · https://angular.dev/api/core/linkedSignal
  • ok · weight 2 · https://angular.dev/api/core/model
  • ok · weight 2 · https://angular.dev/api/core/output
  • ok · weight 2 · https://angular.dev/api/core/signal
  • ok · weight 2 · https://angular.dev/api/forms/SelectMultipleControlValueAccessor
  • ok · weight 2 · https://angular.dev/api/forms/signals/schema
  • ok · weight 2 · https://angular.dev/api/platform-browser/withEventReplay
  • ok · weight 2 · https://angular.dev/assets/context/AGENTS.md
  • ok · weight 2 · https://angular.dev/assets/context/GEMINI.md
  • ok · weight 2 · https://angular.dev/assets/context/angular-20.mdc
  • ok · weight 2 · https://angular.dev/assets/context/best-practices.md
  • ok · weight 2 · https://angular.dev/assets/context/guidelines.md
  • ok · weight 2 · https://angular.dev/assets/context/llms-full.txt
  • ok · weight 2 · https://angular.dev/best-practices/a11y
  • ok · weight 2 · https://angular.dev/best-practices/error-handling
  • ok · weight 2 · https://angular.dev/best-practices/security
  • ok · weight 2 · https://angular.dev/ecosystem/custom-build-pipeline
  • ok · weight 2 · https://angular.dev/ecosystem/web-workers
  • ok · weight 2 · https://angular.dev/errors
  • ok · weight 2 · https://angular.dev/essentials/dependency-injection
  • ok · weight 2 · https://angular.dev/essentials/next-steps
  • ok · weight 2 · https://angular.dev/essentials/signal-forms
  • ok · weight 2 · https://angular.dev/events/v21
  • ok · weight 2 · https://angular.dev/extended-diagnostics
  • ok · weight 2 · https://angular.dev/guide/directives/directive-composition-api
  • ok · weight 2 · https://angular.dev/guide/drag-drop
  • ok · weight 2 · https://angular.dev/guide/forms
  • ok · weight 2 · https://angular.dev/guide/forms/signals/overview
  • ok · weight 2 · https://angular.dev/guide/forms/typed-forms
  • ok · weight 2 · https://angular.dev/guide/hydration
  • ok · weight 2 · https://angular.dev/guide/i18n
  • ok · weight 2 · https://angular.dev/guide/image-optimization
  • ok · weight 2 · https://angular.dev/guide/incremental-hydration
  • ok · weight 2 · https://angular.dev/guide/ngmodules/overview
  • ok · weight 2 · https://angular.dev/guide/routing
  • ok · weight 2 · https://angular.dev/guide/signals/linked-signal
  • ok · weight 2 · https://angular.dev/guide/signals/resource
  • ok · weight 2 · https://angular.dev/guide/ssr
  • ok · weight 2 · https://angular.dev/guide/tailwind
  • ok · weight 2 · https://angular.dev/guide/templates/binding
  • ok · weight 2 · https://angular.dev/guide/templates/control-flow
  • ok · weight 2 · https://angular.dev/guide/templates/defer
  • ok · weight 2 · https://angular.dev/guide/testing
  • ok · weight 2 · https://angular.dev/guide/zoneless
  • ok · weight 2 · https://angular.dev/installation
  • ok · weight 2 · https://angular.dev/llms.txt
  • ok · weight 2 · https://angular.dev/reference/releases
  • ok · weight 2 · https://angular.dev/reference/versions
  • ok · weight 2 · https://angular.dev/style-guide
  • ok · weight 2 · https://angular.dev/tools/cli
  • ok · weight 2 · https://angular.dev/tools/cli/build
  • ok · weight 2 · https://angular.dev/tools/cli/build-system-migration
  • ok · weight 2 · https://angular.dev/tools/devtools
  • ok · weight 2 · https://angular.dev/tools/language-service
  • ok · weight 2 · https://angular.dev/tools/libraries
  • ok · weight 2 · https://angular.dev/tutorials/deferrable-views
  • ok · weight 2 · https://angular.dev/tutorials/first-app
  • ok · weight 2 · https://angular.dev/tutorials/learn-angular/1-components-in-angular
  • ok · weight 2 · https://angular.dev/tutorials/signal-forms
  • ok · weight 2 · https://angular.dev/tutorials/signals
  • ok · weight 2 · https://angular.dev/update
  • ok · weight 2 · https://angular.dev/update-guide
  • ok · weight 2 · https://angular.dev/update-guide?v=21.0-22.0&l=3
  • unverifiable · weight 2 · https://blog.angular.dev/angular-v15-is-now-available-df7be7f2f4c8
  • unverifiable · weight 2 · https://blog.angular.dev/beyond-the-horizon-how-angular-is-embracing-ai-for-next-gen-apps-7a7ed706e1a3
  • unverifiable · weight 2 · https://blog.angular.dev/discontinued-long-term-support-for-angularjs-cc066b82e65a
  • unverifiable · weight 2 · https://blog.angular.dev/modern-css-in-angular-layouts-4a259dca9127
  • unverifiable · weight 2 · https://blog.angular.dev/whats-next-for-server-side-rendering-in-angular-2a6f27662b67
  • ok · weight 2 · https://material.angular.dev/
  • ok · weight 2 · https://material.angular.dev/cdk/categories
  • ok · weight 2 · https://material.angular.dev/guide/mdc-migration
  • ok · weight 2 · https://material.angular.dev/guide/theming
  • ok · weight 2 · https://material.angular.dev/guide/using-component-harnesses
Scoring checks
  • Page title: passed · 15/15 applicable observations

    https://angular.dev/: Home • Angular

    https://angular.dev/docs: Redirecting

    https://angular.dev/license: License • Angular

    https://angular.dev/playground: Playground • Angular

    https://angular.dev/press-kit: Press Kit • Angular

  • Distinct page titles: failed · 13/15 applicable observations

    https://angular.dev/docs: Redirecting

    https://angular.dev/reference: Redirecting

    https://angular.dev/: Home • Angular

    https://angular.dev/license: License • Angular

    https://angular.dev/playground: Playground • Angular

  • Meta description: failed · 13/15 applicable observations

    https://angular.dev/docs: No meta description

    https://angular.dev/reference: No meta description

    https://angular.dev/: The web development framework for building modern apps.

    https://angular.dev/license: The web development framework for building modern apps.

    https://angular.dev/playground: The web development framework for building modern apps.

  • Self-referencing canonical: failed · 13/15 applicable observations

    https://angular.dev/docs: No canonical URL

    https://angular.dev/reference: No canonical URL

    https://angular.dev/: https://angular.dev/

    https://angular.dev/license: https://angular.dev/license

    https://angular.dev/playground: https://angular.dev/playground

  • Main heading: failed · 13/15 applicable observations

    https://angular.dev/docs: 0 H1 element(s)

    https://angular.dev/reference: 0 H1 element(s)

    https://angular.dev/: 1 H1 element(s)

    https://angular.dev/license: 1 H1 element(s)

    https://angular.dev/playground: 1 H1 element(s)

  • Heading hierarchy: failed · 10/15 applicable observations

    https://angular.dev/docs: 0 skipped heading level(s)

    https://angular.dev/press-kit: 1 skipped heading level(s)

    https://angular.dev/reference: 0 skipped heading level(s)

    https://angular.dev/tutorials: 1 skipped heading level(s)

    https://angular.dev/overview: 1 skipped heading level(s)

  • Main landmark: failed · 12/15 applicable observations

    https://angular.dev/docs: 0 main landmarks

    https://angular.dev/playground: 0 main landmarks

    https://angular.dev/reference: 0 main landmarks

    https://angular.dev/: 1 main landmarks

    https://angular.dev/license: 1 main landmarks

  • Mobile viewport: failed · 13/15 applicable observations

    https://angular.dev/docs: No mobile viewport

    https://angular.dev/reference: No mobile viewport

    https://angular.dev/: width=device-width, initial-scale=1

    https://angular.dev/license: width=device-width, initial-scale=1

    https://angular.dev/playground: width=device-width, initial-scale=1

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

    https://angular.dev/: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://angular.dev/docs: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://angular.dev/license: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://angular.dev/playground: 0 of 0 images lack width/height attributes or an aspect-ratio style

    https://angular.dev/press-kit: 8 of 8 images lack width/height attributes or an aspect-ratio style

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

    https://angular.dev/: 0 of 0 blocks have valid JSON-LD structure

    https://angular.dev/docs: 0 of 0 blocks have valid JSON-LD structure

    https://angular.dev/license: 0 of 0 blocks have valid JSON-LD structure

    https://angular.dev/playground: 0 of 0 blocks have valid JSON-LD structure

    https://angular.dev/press-kit: 0 of 0 blocks have valid JSON-LD structure

  • Document language: failed · 13/15 applicable observations

    https://angular.dev/docs: No document language

    https://angular.dev/reference: No document language

    https://angular.dev/: en

    https://angular.dev/license: en

    https://angular.dev/playground: en

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

    https://angular.dev/: 0 of 0 images lack an alt attribute

    https://angular.dev/docs: 0 of 0 images lack an alt attribute

    https://angular.dev/license: 0 of 0 images lack an alt attribute

    https://angular.dev/playground: 0 of 0 images lack an alt attribute

    https://angular.dev/reference: 0 of 0 images lack an alt attribute

  • Form controls named: failed · 0/1 applicable observations

    https://angular.dev/: 1 of 1 controls have no HTML label

    https://angular.dev/docs: 0 of 0 controls have no HTML label

    https://angular.dev/license: 0 of 0 controls have no HTML label

    https://angular.dev/playground: 0 of 0 controls have no HTML label

    https://angular.dev/press-kit: 0 of 0 controls have no HTML label

  • Buttons named: failed · 12/13 applicable observations

    https://angular.dev/docs: 0 of 0 buttons have no HTML name

    https://angular.dev/reference: 0 of 0 buttons have no HTML name

    https://angular.dev/tutorials/learn-angular: 5 of 14 buttons have no HTML name

    https://angular.dev/: 0 of 10 buttons have no HTML name

    https://angular.dev/license: 0 of 7 buttons have no HTML name

  • Links named: failed · 14/15 applicable observations

    https://angular.dev/tutorials/learn-angular: 2 of 12 links have no HTML name

    https://angular.dev/: 0 of 39 links have no HTML name

    https://angular.dev/docs: 0 of 1 links have no HTML name

    https://angular.dev/license: 0 of 31 links have no HTML name

    https://angular.dev/playground: 0 of 5 links have no HTML name

  • Descriptive link text: passed · 15/15 applicable observations

    https://angular.dev/: 0 of 39 links use generic text

    https://angular.dev/docs: 0 of 1 links use generic text

    https://angular.dev/license: 0 of 31 links use generic text

    https://angular.dev/playground: 0 of 5 links use generic text

    https://angular.dev/press-kit: 0 of 47 links use generic text

  • Open Graph title: failed · 13/15 applicable observations

    https://angular.dev/docs: No og:title

    https://angular.dev/reference: No og:title

    https://angular.dev/: Home • Angular

    https://angular.dev/license: License • Angular

    https://angular.dev/playground: Playground • Angular

  • Open Graph description: failed · 13/15 applicable observations

    https://angular.dev/docs: No og:description

    https://angular.dev/reference: No og:description

    https://angular.dev/: The web development framework for building modern apps.

    https://angular.dev/license: The web development framework for building modern apps.

    https://angular.dev/playground: The web development framework for building modern apps.

  • Open Graph type: failed · 13/15 applicable observations

    https://angular.dev/docs: No og:type

    https://angular.dev/reference: No og:type

    https://angular.dev/: website

    https://angular.dev/license: website

    https://angular.dev/playground: website

  • Open Graph URL: failed · 13/15 applicable observations

    https://angular.dev/docs: No og:url

    https://angular.dev/reference: No og:url

    https://angular.dev/: https://angular.dev/

    https://angular.dev/license: https://angular.dev/

    https://angular.dev/playground: https://angular.dev/

  • Open Graph image URL: failed · 13/15 applicable observations

    https://angular.dev/docs: No og:image

    https://angular.dev/reference: No og:image

    https://angular.dev/: https://angular.dev/assets/images/ng-image.jpg

    https://angular.dev/license: https://angular.dev/assets/images/ng-image.jpg

    https://angular.dev/playground: https://angular.dev/assets/images/ng-image.jpg

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

    https://angular.dev/: No sharing image description

    https://angular.dev/docs: No sharing image description

    https://angular.dev/license: No sharing image description

    https://angular.dev/playground: No sharing image description

    https://angular.dev/press-kit: No sharing image description

  • Social card type: failed · 13/15 applicable observations

    https://angular.dev/docs: No social card type

    https://angular.dev/reference: No social card type

    https://angular.dev/: summary_large_image

    https://angular.dev/license: summary_large_image

    https://angular.dev/playground: summary_large_image

  • HTTPS page: passed · 15/15 applicable observations

    https://angular.dev/: https://angular.dev/

    https://angular.dev/docs: https://angular.dev/docs

    https://angular.dev/license: https://angular.dev/license

    https://angular.dev/playground: https://angular.dev/playground

    https://angular.dev/press-kit: https://angular.dev/press-kit

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

    https://angular.dev/: 0 HTTP embedded resource URL(s)

    https://angular.dev/docs: 0 HTTP embedded resource URL(s)

    https://angular.dev/license: 0 HTTP embedded resource URL(s)

    https://angular.dev/playground: 0 HTTP embedded resource URL(s)

    https://angular.dev/press-kit: 0 HTTP embedded resource URL(s)

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

    https://angular.dev/assets/icons/favicon-48x48.png: HTTP 200; image/png

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

    https://angular.dev/assets/images/ng-image.jpg: HTTP 200; image/jpeg

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

    https://angular.dev/sitemap.xml: HTTP 200; sitemap root found

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

    https://angular.dev/: Requires a browser or human assessment; excluded from points.

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

    https://angular.dev/: Requires a browser or human assessment; excluded from points.

  • HSTS declared: passed · 1/1 applicable observations

    https://angular.dev/: Strict-Transport-Security: max-age=31556926

  • Content Security Policy declared: failed · 0/1 applicable observations

    https://angular.dev/: No Content-Security-Policy header or meta element

Sample reference: f565dc34166687dbe9e70672b16d532e6f18a9dfb81147a7e6421d35589fd1e8

Diagnostic checklist

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

SEO
98.32
Sharing
87.49
HTTP response measurement

54 ms median to homepage response headers. Measurements: 45, 54, 71 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.

SEO3 to improve
Page titlePassed

95/95 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

91/95 applicable observations passed. 0.96/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 descriptionNeeds work

93/95 applicable observations passed. 0.98/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

93/95 applicable observations passed. 0.98/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 languageNeeds work

93/95 applicable observations passed. 0.98/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 declaredPassed

10/10 applicable observations passed. 1.00/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

1/3 applicable observations passed. 0.33/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.

Buttons namedNeeds work

88/93 applicable observations passed. 0.95/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.

Structure6 to improve
Main headingNeeds work

93/95 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

86/95 applicable observations passed. 0.91/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 landmarkNeeds work

91/95 applicable observations passed. 0.96/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 viewportNeeds work

93/95 applicable observations passed. 0.98/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/10 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/95 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.

Sharing7 to improve
Open Graph titleNeeds work

93/95 applicable observations passed. 0.98/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 descriptionNeeds work

93/95 applicable observations passed. 0.98/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 typeNeeds work

93/95 applicable observations passed. 0.98/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 URLNeeds work

93/95 applicable observations passed. 0.98/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 URLNeeds work

93/95 applicable observations passed. 0.98/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/93 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 typeNeeds work

93/95 applicable observations passed. 0.98/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.

Security1 to improve
HTTPS pagePassed

95/95 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

95/95 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 declaredNeeds work

0/1 applicable observations passed. 0.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.

AI access1 to improve
Content in initial HTMLNeeds work

93/95 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.

Performance1 to improve
HTML transfer budgetNeeds work

93/95 applicable observations passed. 0.98/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://angular.dev/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 (100)

All 100 pages from this scan.

PageStatusTitleH1ms
https://angular.dev/200Home • Angular
Page checklist evidence
  • title: passedHome • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 39 links have no HTML name
  • link-text: passed0 of 39 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedHome • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1453 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed101,786 bytes of HTML; budget 500,000
1230
https://angular.dev/docs200Redirecting
Page checklist evidence
  • title: passedRedirecting
  • description: failedNo meta description
  • canonical: failedNo canonical URL
  • h1: failed0 H1 element(s)
  • headings: failed0 skipped heading level(s)
  • main: failed0 main landmarks
  • lang: failedNo document language
  • 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: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 1 links have no HTML name
  • link-text: passed0 of 1 links use generic text
  • viewport: failedNo mobile viewport
  • https: passedhttps://angular.dev/docs
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: failed24 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed249 bytes of HTML; budget 500,000
095
https://angular.dev/license200License • Angular
Page checklist evidence
  • title: passedLicense • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/license
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 7 buttons have no HTML name
  • links-named: passed0 of 31 links have no HTML name
  • link-text: passed0 of 31 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/license
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLicense • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1100 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed73,503 bytes of HTML; budget 500,000
158
https://angular.dev/playground200Playground • Angular
Page checklist evidence
  • title: passedPlayground • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/playground
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: failed0 main landmarks
  • lang: passeden
  • 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 8 buttons have no HTML name
  • links-named: passed0 of 5 links have no HTML name
  • link-text: passed0 of 5 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/playground
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedPlayground • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed100 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed67,398 bytes of HTML; budget 500,000
1146
https://angular.dev/press-kit200Press Kit • Angular
Page checklist evidence
  • title: passedPress Kit • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/press-kit
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 8 images lack an alt attribute
  • img-dimensions: failed8 of 8 images lack width/height attributes or an aspect-ratio style
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 8 buttons have no HTML name
  • links-named: passed0 of 47 links have no HTML name
  • link-text: passed0 of 47 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/press-kit
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedPress Kit • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed3320 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed93,363 bytes of HTML; budget 500,000
167
https://angular.dev/reference200Redirecting
Page checklist evidence
  • title: passedRedirecting
  • description: failedNo meta description
  • canonical: failedNo canonical URL
  • h1: failed0 H1 element(s)
  • headings: failed0 skipped heading level(s)
  • main: failed0 main landmarks
  • lang: failedNo document language
  • 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: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 1 links have no HTML name
  • link-text: passed0 of 1 links use generic text
  • viewport: failedNo mobile viewport
  • https: passedhttps://angular.dev/reference
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: failed19 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed234 bytes of HTML; budget 500,000
0135
https://angular.dev/roadmap200Roadmap • Angular
Page checklist evidence
  • title: passedRoadmap • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/roadmap
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 15 buttons have no HTML name
  • links-named: passed0 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://angular.dev/roadmap
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedRoadmap • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed27636 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed205,943 bytes of HTML; budget 500,000
1120
https://angular.dev/tutorials200Tutorials • Angular
Page checklist evidence
  • title: passedTutorials • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tutorials
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 7 buttons have no HTML name
  • links-named: passed0 of 12 links have no HTML name
  • link-text: passed0 of 12 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tutorials
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedTutorials • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed509 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed144,272 bytes of HTML; budget 500,000
172
https://angular.dev/ai200Get Started • Angular
Page checklist evidence
  • title: passedGet Started • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 103 links have no HTML name
  • link-text: passed0 of 103 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedGet Started • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed10945 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed192,241 bytes of HTML; budget 500,000
1155
https://angular.dev/ai/develop-with-ai200LLM prompts and AI IDE setup • Angular
Page checklist evidence
  • title: passedLLM prompts and AI IDE setup • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai/develop-with-ai
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 111 links have no HTML name
  • link-text: passed0 of 111 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai/develop-with-ai
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLLM prompts and AI IDE setup • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed5944 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed183,014 bytes of HTML; budget 500,000
1179
https://angular.dev/essentials200Essentials • Overview • Angular
Page checklist evidence
  • title: passedEssentials • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/essentials
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/essentials
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedEssentials • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1030 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed164,966 bytes of HTML; budget 500,000
1193
https://angular.dev/essentials/signals200Reactivity with signals • Angular
Page checklist evidence
  • title: passedReactivity with signals • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/essentials/signals
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 92 links have no HTML name
  • link-text: passed0 of 92 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/essentials/signals
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedReactivity with signals • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2345 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed185,809 bytes of HTML; budget 500,000
1194
https://angular.dev/events/v22200Angular v22 Release • Angular
Page checklist evidence
  • title: passedAngular v22 Release • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/events/v22
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 30 buttons have no HTML name
  • links-named: passed0 of 66 links have no HTML name
  • link-text: passed0 of 66 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/events/v22
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAngular v22 Release • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1176 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed136,117 bytes of HTML; budget 500,000
1241
https://angular.dev/overview200What is Angular? • Angular
Page checklist evidence
  • title: passedWhat is Angular? • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/overview
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 99 links have no HTML name
  • link-text: passed0 of 99 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/overview
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedWhat is Angular? • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed6637 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed294,523 bytes of HTML; budget 500,000
1215
https://angular.dev/tutorials/learn-angular200Learn Angular • Angular
Page checklist evidence
  • title: passedLearn Angular • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tutorials/learn-angular
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 14 buttons have no HTML name
  • links-named: failed2 of 12 links have no HTML name
  • link-text: passed0 of 12 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tutorials/learn-angular
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLearn Angular • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed614 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed81,875 bytes of HTML; budget 500,000
1216
https://angular.dev/api200API Reference • Overview • Angular
Page checklist evidence
  • title: passedAPI Reference • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: failed0 main landmarks
  • lang: passeden
  • 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: failed2 of 2 controls have no HTML label
  • buttons: passed0 of 18 buttons have no HTML name
  • links-named: passed0 of 1071 links have no HTML name
  • link-text: passed0 of 1071 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAPI Reference • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed16852 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: failed608,847 bytes of HTML; budget 500,000
1229
https://angular.dev/reference/releases200Versioning and releases • Angular
Page checklist evidence
  • title: passedVersioning and releases • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/reference/releases
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 15 buttons have no HTML name
  • links-named: passed0 of 60 links have no HTML name
  • link-text: passed0 of 60 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/reference/releases
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVersioning and releases • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed11527 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed135,503 bytes of HTML; budget 500,000
1146
https://angular.dev/reference/versions200Version compatibility • Angular
Page checklist evidence
  • title: passedVersion compatibility • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/reference/versions
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 15 buttons have no HTML name
  • links-named: passed0 of 50 links have no HTML name
  • link-text: passed0 of 50 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/reference/versions
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedVersion compatibility • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed6622 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed139,385 bytes of HTML; budget 500,000
170
https://angular.dev/update-guide200Update guide • Angular
Page checklist evidence
  • title: passedUpdate guide • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/update-guide
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 3 controls have no HTML label
  • buttons: passed0 of 20 buttons have no HTML name
  • links-named: passed0 of 34 links have no HTML name
  • link-text: passed0 of 34 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/update-guide
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedUpdate guide • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed302 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed134,494 bytes of HTML; budget 500,000
199
https://angular.dev/ai/webmcp200WebMCP • Angular
Page checklist evidence
  • title: passedWebMCP • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai/webmcp
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 128 links have no HTML name
  • link-text: passed0 of 128 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai/webmcp
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedWebMCP • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9770 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed250,792 bytes of HTML; budget 500,000
1184
https://angular.dev/guide/forms/signals/overview200Forms • Overview • Angular
Page checklist evidence
  • title: passedForms • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/forms/signals/overview
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 99 links have no HTML name
  • link-text: passed0 of 99 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/forms/signals/overview
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedForms • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2058 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed169,903 bytes of HTML; budget 500,000
1183
https://angular.dev/guide/signals/resource200Async reactivity with resources • Angular
Page checklist evidence
  • title: passedAsync reactivity with resources • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/signals/resource
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/signals/resource
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAsync reactivity with resources • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed11147 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed258,597 bytes of HTML; budget 500,000
1205
https://angular.dev/api/common/http/httpResource200httpResource • Angular
Page checklist evidence
  • title: passedhttpResource • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/http/httpResource
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 81 buttons have no HTML name
  • links-named: passed0 of 256 links have no HTML name
  • link-text: passed0 of 256 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/common/http/httpResource
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedhttpResource • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9325 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed381,599 bytes of HTML; budget 500,000
1241
https://angular.dev/guide/zoneless200Zoneless • Angular
Page checklist evidence
  • title: passedZoneless • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/zoneless
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 125 links have no HTML name
  • link-text: passed0 of 125 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/zoneless
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedZoneless • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9514 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed192,917 bytes of HTML; budget 500,000
1201
https://angular.dev/guide/signals/linked-signal200Dependent state with linkedSignal • Angular
Page checklist evidence
  • title: passedDependent state with linkedSignal • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/signals/linked-signal
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 111 links have no HTML name
  • link-text: passed0 of 111 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/signals/linked-signal
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDependent state with linkedSignal • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7273 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed243,389 bytes of HTML; budget 500,000
1228
https://angular.dev/guide/incremental-hydration200Incremental Hydration • Angular
Page checklist evidence
  • title: passedIncremental Hydration • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/incremental-hydration
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 111 links have no HTML name
  • link-text: passed0 of 111 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/incremental-hydration
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedIncremental Hydration • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9984 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed211,331 bytes of HTML; budget 500,000
1177
https://angular.dev/api/core/effect200effect • Angular
Page checklist evidence
  • title: passedeffect • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/effect
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 324 links have no HTML name
  • link-text: passed0 of 324 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/effect
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedeffect • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1296 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed278,088 bytes of HTML; budget 500,000
1252
https://angular.dev/api/platform-browser/withEventReplay200withEventReplay • Angular
Page checklist evidence
  • title: passedwithEventReplay • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/platform-browser/withEventReplay
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 83 links have no HTML name
  • link-text: passed0 of 83 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/platform-browser/withEventReplay
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedwithEventReplay • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed681 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed161,961 bytes of HTML; budget 500,000
1191
https://angular.dev/guide/ssr200Server-side and hybrid-rendering • Angular
Page checklist evidence
  • title: passedServer-side and hybrid-rendering • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/ssr
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 247 links have no HTML name
  • link-text: passed0 of 247 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/ssr
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedServer-side and hybrid-rendering • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed27653 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed403,617 bytes of HTML; budget 500,000
1223
https://angular.dev/guide/signals200Signals • Overview • Angular
Page checklist evidence
  • title: passedSignals • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/signals
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/signals
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedSignals • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed10299 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed261,692 bytes of HTML; budget 500,000
1221
https://angular.dev/api/core/ChangeDetectionStrategy200ChangeDetectionStrategy • Angular
Page checklist evidence
  • title: passedChangeDetectionStrategy • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/ChangeDetectionStrategy
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 68 buttons have no HTML name
  • links-named: passed0 of 321 links have no HTML name
  • link-text: passed0 of 321 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/ChangeDetectionStrategy
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedChangeDetectionStrategy • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1070 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed277,449 bytes of HTML; budget 500,000
1201
https://angular.dev/api/core/@let200@let • Angular
Page checklist evidence
  • title: passed@let • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/@let
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 316 links have no HTML name
  • link-text: passed0 of 316 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/@let
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passed@let • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1229 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed281,314 bytes of HTML; budget 500,000
1246
https://angular.dev/guide/templates/defer200Deferred loading with @defer • Angular
Page checklist evidence
  • title: passedDeferred loading with @defer • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/templates/defer
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/templates/defer
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDeferred loading with @defer • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed16811 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed296,535 bytes of HTML; budget 500,000
1212
https://angular.dev/tools/cli/build-system-migration200Migrating to new build system • Angular
Page checklist evidence
  • title: passedMigrating to new build system • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tools/cli/build-system-migration
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 122 links have no HTML name
  • link-text: failed1 of 122 links use generic text: "here"
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tools/cli/build-system-migration
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedMigrating to new build system • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed28662 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed298,679 bytes of HTML; budget 500,000
1265
https://angular.dev/guide/templates/control-flow200Control flow • Angular
Page checklist evidence
  • title: passedControl flow • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/templates/control-flow
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 83 links have no HTML name
  • link-text: passed0 of 83 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/templates/control-flow
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedControl flow • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed6254 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed196,331 bytes of HTML; budget 500,000
1176
https://angular.dev/guide/hydration200Hydration • Angular
Page checklist evidence
  • title: passedHydration • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/hydration
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/hydration
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedHydration • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed16124 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed212,968 bytes of HTML; budget 500,000
1200
https://angular.dev/tools/devtools200DevTools • Overview • Angular
Page checklist evidence
  • title: passedDevTools • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tools/devtools
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 31 buttons have no HTML name
  • links-named: passed0 of 76 links have no HTML name
  • link-text: passed0 of 76 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tools/devtools
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDevTools • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2805 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed146,299 bytes of HTML; budget 500,000
1182
https://angular.dev/essentials/components200Composition with components • Angular
Page checklist evidence
  • title: passedComposition with components • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/essentials/components
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/essentials/components
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedComposition with components • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed3163 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed261,600 bytes of HTML; budget 500,000
1357
https://angular.dev/guide/image-optimization200Optimizing images with NgOptimizedImage • Angular
Page checklist evidence
  • title: passedOptimizing images with NgOptimizedImage • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/image-optimization
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 217 links have no HTML name
  • link-text: failed4 of 217 links use generic text: "here"
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/image-optimization
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedOptimizing images with NgOptimizedImage • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed23599 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed320,232 bytes of HTML; budget 500,000
1251
https://angular.dev/guide/directives/directive-composition-api200Directive composition API • Angular
Page checklist evidence
  • title: passedDirective composition API • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/directives/directive-composition-api
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/directives/directive-composition-api
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDirective composition API • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed8870 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed223,461 bytes of HTML; budget 500,000
1193
https://angular.dev/guide/templates/binding200Binding dynamic text, properties and attributes • Angular
Page checklist evidence
  • title: passedBinding dynamic text, properties and attributes • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/templates/binding
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 105 links have no HTML name
  • link-text: passed0 of 105 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/templates/binding
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedBinding dynamic text, properties and attributes • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9012 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed235,518 bytes of HTML; budget 500,000
1219
https://angular.dev/guide/forms/typed-forms200Strictly typed reactive forms • Angular
Page checklist evidence
  • title: passedStrictly typed reactive forms • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/forms/typed-forms
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/forms/typed-forms
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedStrictly typed reactive forms • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7259 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed233,481 bytes of HTML; budget 500,000
1230
https://angular.dev/extended-diagnostics200Extended Diagnostics • Overview • Angular
Page checklist evidence
  • title: passedExtended Diagnostics • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/extended-diagnostics
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 16 buttons have no HTML name
  • links-named: passed0 of 78 links have no HTML name
  • link-text: passed0 of 78 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/extended-diagnostics
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedExtended Diagnostics • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed3991 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed128,519 bytes of HTML; budget 500,000
1224
https://angular.dev/guide/testing200Testing • Overview • Angular
Page checklist evidence
  • title: passedTesting • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/testing
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 116 links have no HTML name
  • link-text: passed0 of 116 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/testing
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedTesting • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed8587 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed221,626 bytes of HTML; budget 500,000
1248
https://angular.dev/tools/libraries200Libraries • Overview • Angular
Page checklist evidence
  • title: passedLibraries • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tools/libraries
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/tools/libraries
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLibraries • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2678 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed137,972 bytes of HTML; budget 500,000
1281
https://angular.dev/tools/language-service200Language Service • Angular
Page checklist evidence
  • title: passedLanguage Service • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tools/language-service
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 30 buttons have no HTML name
  • links-named: passed0 of 104 links have no HTML name
  • link-text: failed1 of 104 links use generic text: "here"
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tools/language-service
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLanguage Service • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7676 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed174,472 bytes of HTML; budget 500,000
1294
https://angular.dev/best-practices/security200Security • Angular
Page checklist evidence
  • title: passedSecurity • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/best-practices/security
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 30 buttons have no HTML name
  • links-named: passed0 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://angular.dev/best-practices/security
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedSecurity • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed27939 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed298,865 bytes of HTML; budget 500,000
182
https://angular.dev/tools/cli/build200Building Angular apps • Angular
Page checklist evidence
  • title: passedBuilding Angular apps • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tools/cli/build
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 99 links have no HTML name
  • link-text: passed0 of 99 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tools/cli/build
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedBuilding Angular apps • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed8090 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed193,253 bytes of HTML; budget 500,000
1195
https://angular.dev/errors200Error Encyclopedia • Overview • Angular
Page checklist evidence
  • title: passedError Encyclopedia • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/errors
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 16 buttons have no HTML name
  • links-named: passed0 of 154 links have no HTML name
  • link-text: passed0 of 154 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/errors
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedError Encyclopedia • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2411 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed148,405 bytes of HTML; budget 500,000
1204
https://angular.dev/tools/cli200Angular CLI • Overview • Angular
Page checklist evidence
  • title: passedAngular CLI • Overview • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tools/cli
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 85 links have no HTML name
  • link-text: passed0 of 85 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tools/cli
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAngular CLI • Overview • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2157 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed145,855 bytes of HTML; budget 500,000
1184
https://angular.dev/ai/ai-tutor200Angular AI Tutor • Angular
Page checklist evidence
  • title: passedAngular AI Tutor • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai/ai-tutor
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 30 buttons have no HTML name
  • links-named: passed0 of 83 links have no HTML name
  • link-text: passed0 of 83 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai/ai-tutor
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAngular AI Tutor • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed8310 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed163,607 bytes of HTML; budget 500,000
1135
https://angular.dev/tutorials/first-app200Your first Angular app • Angular
Page checklist evidence
  • title: passedYour first Angular app • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tutorials/first-app
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: failed5 of 14 buttons have no HTML name
  • links-named: failed2 of 30 links have no HTML name
  • link-text: passed0 of 30 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tutorials/first-app
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedYour first Angular app • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2918 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed101,765 bytes of HTML; budget 500,000
1180
https://angular.dev/tutorials/signals200Learn Angular signals • Angular
Page checklist evidence
  • title: passedLearn Angular signals • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tutorials/signals
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 14 buttons have no HTML name
  • links-named: failed2 of 11 links have no HTML name
  • link-text: passed0 of 11 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tutorials/signals
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLearn Angular signals • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed485 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed81,190 bytes of HTML; budget 500,000
1136
https://angular.dev/tutorials/deferrable-views200Deferrable Views • Angular
Page checklist evidence
  • title: passedDeferrable Views • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tutorials/deferrable-views
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 14 buttons have no HTML name
  • links-named: failed2 of 10 links have no HTML name
  • link-text: passed0 of 10 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tutorials/deferrable-views
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDeferrable Views • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed322 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed79,579 bytes of HTML; budget 500,000
1246
https://angular.dev/tutorials/signal-forms200Learn Angular Signal Forms • Angular
Page checklist evidence
  • title: passedLearn Angular Signal Forms • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/tutorials/signal-forms
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 14 buttons have no HTML name
  • links-named: failed2 of 12 links have no HTML name
  • link-text: passed0 of 12 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/tutorials/signal-forms
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedLearn Angular Signal Forms • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed852 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed82,493 bytes of HTML; budget 500,000
1169
https://angular.dev/installation200Installation • Angular
Page checklist evidence
  • title: passedInstallation • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/installation
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 79 links have no HTML name
  • link-text: passed0 of 79 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/installation
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedInstallation • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2974 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed181,550 bytes of HTML; budget 500,000
1252
https://angular.dev/guide/drag-drop200Drag and drop • Angular
Page checklist evidence
  • title: passedDrag and drop • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/drag-drop
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 328 links have no HTML name
  • link-text: passed0 of 328 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/drag-drop
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDrag and drop • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed53531 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: failed1,500,126 bytes of HTML; budget 500,000
1281
https://angular.dev/ai/agent-skills200Agent Skills • Angular
Page checklist evidence
  • title: passedAgent Skills • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai/agent-skills
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 64 links have no HTML name
  • link-text: passed0 of 64 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai/agent-skills
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAgent Skills • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1557 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed134,360 bytes of HTML; budget 500,000
1190
https://angular.dev/ai/mcp200Angular CLI MCP Server setup • Angular
Page checklist evidence
  • title: passedAngular CLI MCP Server setup • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai/mcp
  • h1: passed1 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 67 links have no HTML name
  • link-text: passed0 of 67 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai/mcp
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAngular CLI MCP Server setup • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed5251 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed162,878 bytes of HTML; budget 500,000
1188
https://angular.dev/ai/design-patterns200Design Patterns • Angular
Page checklist evidence
  • title: passedDesign Patterns • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ai/design-patterns
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 87 links have no HTML name
  • link-text: passed0 of 87 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ai/design-patterns
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDesign Patterns • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7297 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed215,848 bytes of HTML; budget 500,000
1219
https://angular.dev/style-guide200Style Guide • Angular
Page checklist evidence
  • title: passedStyle Guide • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/style-guide
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 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://angular.dev/style-guide
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedStyle Guide • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed11684 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed229,295 bytes of HTML; budget 500,000
181
https://angular.dev/best-practices/a11y200Accessibility • Angular
Page checklist evidence
  • title: passedAccessibility • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/best-practices/a11y
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 111 links have no HTML name
  • link-text: passed0 of 111 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/best-practices/a11y
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAccessibility • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9171 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed211,551 bytes of HTML; budget 500,000
1212
https://angular.dev/best-practices/error-handling200Unhandled errors in Angular • Angular
Page checklist evidence
  • title: passedUnhandled errors in Angular • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/best-practices/error-handling
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 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://angular.dev/best-practices/error-handling
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedUnhandled errors in Angular • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7408 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed162,289 bytes of HTML; budget 500,000
1184
https://angular.dev/update200Keeping up-to-date • Angular
Page checklist evidence
  • title: passedKeeping up-to-date • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/update
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 83 links have no HTML name
  • link-text: passed0 of 83 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/update
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedKeeping up-to-date • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2905 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed138,806 bytes of HTML; budget 500,000
1202
https://angular.dev/events/v21200Angular v21 Release • Angular
Page checklist evidence
  • title: passedAngular v21 Release • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/events/v21
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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: passed0 of 30 buttons have no HTML name
  • links-named: passed0 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://angular.dev/events/v21
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAngular v21 Release • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed17462 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed487,756 bytes of HTML; budget 500,000
1184
https://angular.dev/guide/ngmodules/overview200NgModules • Angular
Page checklist evidence
  • title: passedNgModules • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/ngmodules/overview
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 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://angular.dev/guide/ngmodules/overview
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgModules • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed6320 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed186,289 bytes of HTML; budget 500,000
1214
https://angular.dev/ecosystem/web-workers200Web workers • Angular
Page checklist evidence
  • title: passedWeb workers • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ecosystem/web-workers
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 62 links have no HTML name
  • link-text: passed0 of 62 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ecosystem/web-workers
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedWeb workers • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2042 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed150,054 bytes of HTML; budget 500,000
1241
https://angular.dev/ecosystem/custom-build-pipeline200Custom build pipeline • Angular
Page checklist evidence
  • title: passedCustom build pipeline • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/ecosystem/custom-build-pipeline
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 71 links have no HTML name
  • link-text: passed0 of 71 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/ecosystem/custom-build-pipeline
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedCustom build pipeline • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2676 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed133,990 bytes of HTML; budget 500,000
1205
https://angular.dev/guide/tailwind200Tailwind • Angular
Page checklist evidence
  • title: passedTailwind • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/guide/tailwind
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 30 buttons have no HTML name
  • links-named: passed0 of 69 links have no HTML name
  • link-text: passed0 of 69 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/guide/tailwind
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedTailwind • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2435 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed152,034 bytes of HTML; budget 500,000
1204
https://angular.dev/api/core/HostBinding200HostBinding • Angular
Page checklist evidence
  • title: passedHostBinding • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/HostBinding
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 326 links have no HTML name
  • link-text: passed0 of 326 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/HostBinding
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedHostBinding • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1428 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed291,522 bytes of HTML; budget 500,000
1270
https://angular.dev/api/core/HostListener200HostListener • Angular
Page checklist evidence
  • title: passedHostListener • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/HostListener
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 325 links have no HTML name
  • link-text: passed0 of 325 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/HostListener
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedHostListener • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1983 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed294,768 bytes of HTML; budget 500,000
1249
https://angular.dev/api/core/Component200Component • Angular
Page checklist evidence
  • title: passedComponent • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/Component
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 359 links have no HTML name
  • link-text: passed0 of 359 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/Component
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedComponent • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed14503 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed420,870 bytes of HTML; budget 500,000
1247
https://angular.dev/api/core/Directive200Directive • Angular
Page checklist evidence
  • title: passedDirective • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/Directive
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 328 links have no HTML name
  • link-text: passed0 of 328 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/Directive
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDirective • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7308 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed331,043 bytes of HTML; budget 500,000
1281
https://angular.dev/api/common/NgOptimizedImage200NgOptimizedImage • Angular
Page checklist evidence
  • title: passedNgOptimizedImage • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/NgOptimizedImage
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 80 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/common/NgOptimizedImage
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgOptimizedImage • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed6489 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed264,971 bytes of HTML; budget 500,000
1226
https://angular.dev/api/core/output200output • Angular
Page checklist evidence
  • title: passedoutput • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/output
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 66 buttons have no HTML name
  • links-named: passed0 of 340 links have no HTML name
  • link-text: passed0 of 340 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/output
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedoutput • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1634 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed296,503 bytes of HTML; budget 500,000
1259
https://angular.dev/api/core/model200model • Angular
Page checklist evidence
  • title: passedmodel • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/model
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 68 buttons have no HTML name
  • links-named: passed0 of 346 links have no HTML name
  • link-text: passed0 of 346 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/model
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedmodel • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1893 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed306,689 bytes of HTML; budget 500,000
1215
https://angular.dev/api/core/computed200computed • Angular
Page checklist evidence
  • title: passedcomputed • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/computed
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 319 links have no HTML name
  • link-text: passed0 of 319 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/computed
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedcomputed • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed347 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed274,747 bytes of HTML; budget 500,000
1213
https://angular.dev/api/core/linkedSignal200linkedSignal • Angular
Page checklist evidence
  • title: passedlinkedSignal • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/linkedSignal
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 328 links have no HTML name
  • link-text: passed0 of 328 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/linkedSignal
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedlinkedSignal • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2468 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed329,135 bytes of HTML; budget 500,000
1434
https://angular.dev/api/forms/SelectMultipleControlValueAccessor200SelectMultipleControlValueAccessor • Angular
Page checklist evidence
  • title: passedSelectMultipleControlValueAccessor • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/forms/SelectMultipleControlValueAccessor
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 66 buttons have no HTML name
  • links-named: passed0 of 133 links have no HTML name
  • link-text: passed0 of 133 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/forms/SelectMultipleControlValueAccessor
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedSelectMultipleControlValueAccessor • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1405 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed192,304 bytes of HTML; budget 500,000
1172
https://angular.dev/api/core/Signal200Signal • Angular
Page checklist evidence
  • title: passedSignal • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/Signal
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 317 links have no HTML name
  • link-text: passed0 of 317 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/Signal
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedSignal • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed448 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed272,807 bytes of HTML; budget 500,000
1235
https://angular.dev/api/core/signal200signal • Angular
Page checklist evidence
  • title: passedsignal • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/signal
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 319 links have no HTML name
  • link-text: passed0 of 319 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/signal
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedsignal • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed321 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed274,370 bytes of HTML; budget 500,000
1205
https://angular.dev/api/forms/signals/schema200schema • Angular
Page checklist evidence
  • title: passedschema • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/forms/signals/schema
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/forms/signals/schema
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedschema • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed396 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed211,945 bytes of HTML; budget 500,000
1189
https://angular.dev/api/common/NgClass200NgClass • Angular
Page checklist evidence
  • title: passedNgClass • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/NgClass
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 68 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/common/NgClass
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgClass • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1591 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed215,887 bytes of HTML; budget 500,000
1195
https://angular.dev/api/common/NgStyle200NgStyle • Angular
Page checklist evidence
  • title: passedNgStyle • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/NgStyle
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 67 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/common/NgStyle
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgStyle • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1995 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed210,377 bytes of HTML; budget 500,000
1132
https://angular.dev/api/common/CommonModule200CommonModule • Angular
Page checklist evidence
  • title: passedCommonModule • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/CommonModule
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/common/CommonModule
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedCommonModule • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed329 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed186,159 bytes of HTML; budget 500,000
1231
https://angular.dev/api/common/AsyncPipe200AsyncPipe • Angular
Page checklist evidence
  • title: passedAsyncPipe • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/AsyncPipe
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 69 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/common/AsyncPipe
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedAsyncPipe • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2403 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed244,984 bytes of HTML; budget 500,000
1180
https://angular.dev/api/common/DatePipe200DatePipe • Angular
Page checklist evidence
  • title: passedDatePipe • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/DatePipe
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 69 buttons have no HTML name
  • links-named: passed0 of 167 links have no HTML name
  • link-text: passed0 of 167 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/common/DatePipe
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDatePipe • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed7988 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed268,482 bytes of HTML; budget 500,000
1168
https://angular.dev/api/common/NgIf200NgIf • Angular
Page checklist evidence
  • title: passedNgIf • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/NgIf
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 71 buttons have no HTML name
  • links-named: passed0 of 195 links have no HTML name
  • link-text: passed0 of 195 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/common/NgIf
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgIf • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed9205 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed333,287 bytes of HTML; budget 500,000
1271
https://angular.dev/api/common/NgForOf200NgForOf • Angular
Page checklist evidence
  • title: passedNgForOf • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/NgForOf
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 70 buttons have no HTML name
  • links-named: passed0 of 202 links have no HTML name
  • link-text: passed0 of 202 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/common/NgForOf
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgForOf • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed6524 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed251,404 bytes of HTML; budget 500,000
1203
https://angular.dev/api/common/NgSwitch200NgSwitch • Angular
Page checklist evidence
  • title: passedNgSwitch • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/common/NgSwitch
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 66 buttons have no HTML name
  • links-named: passed0 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://angular.dev/api/common/NgSwitch
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedNgSwitch • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed2903 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed224,998 bytes of HTML; budget 500,000
1194
https://angular.dev/api/core/Service200Service • Angular
Page checklist evidence
  • title: passedService • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/Service
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 316 links have no HTML name
  • link-text: passed0 of 316 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/Service
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedService • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed273 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed268,523 bytes of HTML; budget 500,000
1229
https://angular.dev/api/core/Injectable200Injectable • Angular
Page checklist evidence
  • title: passedInjectable • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/api/core/Injectable
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 65 buttons have no HTML name
  • links-named: passed0 of 321 links have no HTML name
  • link-text: passed0 of 321 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/api/core/Injectable
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedInjectable • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed886 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed278,841 bytes of HTML; budget 500,000
1261
https://angular.dev/assets/context/best-practices.md200—0125
https://angular.dev/assets/context/GEMINI.md200—0136
https://angular.dev/assets/context/guidelines.md200—087
https://angular.dev/assets/context/angular-20.mdc200—094
https://angular.dev/assets/context/AGENTS.md200—080
https://angular.dev/essentials/templates200Dynamic interfaces with templates • Angular
Page checklist evidence
  • title: passedDynamic interfaces with templates • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/essentials/templates
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/essentials/templates
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedDynamic interfaces with templates • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed3717 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed204,079 bytes of HTML; budget 500,000
1232
https://angular.dev/essentials/signal-forms200Forms with signals • Angular
Page checklist evidence
  • title: passedForms with signals • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/essentials/signal-forms
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 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://angular.dev/essentials/signal-forms
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedForms with signals • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed11210 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed389,019 bytes of HTML; budget 500,000
1214
https://angular.dev/essentials/dependency-injection200Modular design with dependency injection • Angular
Page checklist evidence
  • title: passedModular design with dependency injection • Angular
  • description: passedThe web development framework for building modern apps.
  • canonical: passedhttps://angular.dev/essentials/dependency-injection
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • 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 31 buttons have no HTML name
  • links-named: passed0 of 79 links have no HTML name
  • link-text: passed0 of 79 links use generic text
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://angular.dev/essentials/dependency-injection
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: passedModular design with dependency injection • Angular
  • og-description: passedThe web development framework for building modern apps.
  • og-type: passedwebsite
  • og-url: passedhttps://angular.dev/
  • og-image: passedhttps://angular.dev/assets/images/ng-image.jpg
  • og-alt: failedNo sharing image description
  • twitter-card: passedsummary_large_image
  • readable: passed1772 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed183,547 bytes of HTML; budget 500,000
1213
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