# Nested Anchor Tags Detection
# Detects nested <a> tags which are invalid HTML
id: no-nested-links
name: Nested anchor tags
severity: error
category: correctness
defect_class: correctness
inline_tier: blocking
language: tsx

message: "Nested <a> tags are invalid HTML and cause unexpected behavior"

description: |
  HTML does not allow anchor tags nested inside other anchor tags.
  This causes rendering issues and unpredictable click behavior.

query: |
  (jsx_element
    open_tag: (jsx_opening_element
      (identifier) @OUTER
      (#eq? @OUTER "a"))) @OUTER_ELEMENT

metavars:
  - OUTER
  - OUTER_ELEMENT

post_filter: no_nested_anchor_chain

tags:
  - correctness
  - react
  - jsx
  - html

examples:
  bad: |
    <a href="/outer">
      <a href="/inner">Click</a>
    </a>

  good: |
    <a href="/outer">Outer link</a>
    <a href="/inner">Inner link</a>

has_fix: false
