feat(no-nested-tags): deny nesting a and p tags #2398
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
Shows this lint error on nested a or p tags:

Why
If a browser encounters nested a or p tags, it'll de-nest them. It's possible via
appendChild
though - so if you use angular without Ssr, this won't apply to you.With the addition of https://angular.dev/guide/incremental-hydration for Ssr this is a problem though. If you have a component that creates:
[<a>{<a>()</a>}</a>]
Then Ssr will send:
[<a>{</a><a>()</a>}]
Which is a DOM mismatch and incremental-hydration will throw an error:
and not successfully bootstrap.
This lint rule tries to prevent this. Of course not across components, but at least if it happens inside a single template.
related: angular/angular#51399
You can observe this behavior also if you try to throw this into a page via the dev toolbar:
CleanShot.2025-04-28.at.16.09.23-converted.mp4