@ DocumentNode (location: (1:0)-(1:42))
└── children: (1 item)
    └── @ HTMLElementNode (location: (1:0)-(1:42))
        ├── open_tag:
        │   └── @ HTMLOpenTagNode (location: (1:0)-(1:42))
        │       ├── tag_opening: "<" (location: (1:0)-(1:1))
        │       ├── tag_name: "input" (location: (1:1)-(1:6))
        │       ├── tag_closing: "/>" (location: (1:40)-(1:42))
        │       ├── children: (3 items)
        │       │   ├── @ HTMLAttributeNode (location: (1:7)-(1:22))
        │       │   │   ├── name:
        │       │   │   │   └── @ HTMLAttributeNameNode (location: (1:7)-(1:12))
        │       │   │   │       └── name: "class" (location: (1:7)-(1:12))
        │       │   │   │
        │       │   │   ├── equals: "=" (location: (1:12)-(1:13))
        │       │   │   └── value:
        │       │   │       └── @ HTMLAttributeValueNode (location: (1:13)-(1:22))
        │       │   │           ├── open_quote: """ (location: (1:13)-(1:14))
        │       │   │           ├── children: (1 item)
        │       │   │           │   └── @ LiteralNode (location: (1:14)-(1:21))
        │       │   │           │       └── content: "classes"
        │       │   │           │
        │       │   │           ├── close_quote: """ (location: (1:21)-(1:22))
        │       │   │           └── quoted: true
        │       │   │
        │       │   │
        │       │   ├── @ HTMLAttributeNode (location: (1:23)-(1:31))
        │       │   │   ├── name:
        │       │   │   │   └── @ HTMLAttributeNameNode (location: (1:23)-(1:31))
        │       │   │   │       └── name: "required" (location: (1:23)-(1:31))
        │       │   │   │
        │       │   │   ├── equals: ∅
        │       │   │   └── value: ∅
        │       │   │
        │       │   └── @ HTMLAttributeNode (location: (1:32)-(1:40))
        │       │       ├── name:
        │       │       │   └── @ HTMLAttributeNameNode (location: (1:32)-(1:34))
        │       │       │       └── name: "id" (location: (1:32)-(1:34))
        │       │       │
        │       │       ├── equals: "=" (location: (1:34)-(1:35))
        │       │       └── value:
        │       │           └── @ HTMLAttributeValueNode (location: (1:35)-(1:40))
        │       │               ├── open_quote: """ (location: (1:35)-(1:36))
        │       │               ├── children: (1 item)
        │       │               │   └── @ LiteralNode (location: (1:36)-(1:39))
        │       │               │       └── content: "ids"
        │       │               │
        │       │               ├── close_quote: """ (location: (1:39)-(1:40))
        │       │               └── quoted: true
        │       │
        │       │
        │       └── is_void: true
        │
        ├── tag_name: "input" (location: (1:1)-(1:6))
        ├── body: []
        ├── close_tag: ∅
        └── is_void: true