Description
Resolve a supplied explicit form attribute before a supplied ancestor form; missing/duplicate owner evidence is retained, no DOM lookup or first-element claim.
HTML form controls combine attribute values, option state and form-owner references with browser-maintained DOM state. These tools take explicit strings, lists and flags so a particular relationship can be checked in isolation. The supplied-record model does not itself inspect a document or reproduce every browser state transition.
Resolve a supplied explicit form attribute before a supplied ancestor form; missing/duplicate owner evidence is retained, no DOM lookup or first-element claim.
When to use this tool
Use this tool to resolve a supplied explicit form attribute before a supplied ancestor form; missing/duplicate owner evidence is retained, no DOM lookup or first-element claim.
How to use the tool and how it works
- Enter formAttribute, ancestorForm, forms using the field definitions below.
- Run the operation. Correct input errors before interpreting an output.
- Read result.owner, result.explicit, result.matches. Use the ordering, boundary rules and absence conditions described below.
When formAttribute is nonempty, return it only if it appears in forms; otherwise return ancestorForm or null. Also return explicit and the number of exact supplied form matches.1
| Input field | Meaning and units | Accepted input |
|---|---|---|
| formAttribute | Explicit form attribute string; empty means no explicit reference in this model. | Text, at most 8,192 UTF-16 code units; the operation’s grammar also applies. |
| ancestorForm | Supplied ancestor form ID, or empty when none is supplied. | Text, at most 8,192 UTF-16 code units; the operation’s grammar also applies. |
| forms | Supplied form ID strings, including duplicates if present. | Dense list of at most 128 strings, each at most 8,192 UTF-16 code units. |
| Output field | Interpretation |
|---|---|
| result | Object containing the named fields below. |
| result.owner | Matching explicit supplied form ID or supplied ancestor ID, or null when unresolved. |
| result.explicit | Whether a nonempty form attribute was supplied. |
| result.matches | Number of supplied form IDs exactly matching the explicit reference. |
{
"input": {
"formAttribute": "x",
"ancestorForm": "a",
"forms": [
"a"
]
},
"output": {
"result": {
"owner": null,
"explicit": true,
"matches": 0
}
}
} Limitations and assumptions
- This is a supplied-string reference check, not full DOM form-owner resolution; a missing explicit target does not fall back to the ancestor.
- All DOM-related facts are supplied by the caller. No element is queried, no browser state is mutated and no document-wide validity or accessibility audit is performed.
- Every declared top-level input field is required and unexpected fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
- Numeric outputs must be finite and no larger in absolute magnitude than the safe-integer limit; operations returning exact large integers use decimal text. Positions are zero-based and spans end exclusively unless the operation explicitly states a different convention.
Alternative or Complementary methods
Use DOM inspection or browser constraint-validation APIs when actual document state matters. The supplied-record checks are useful for focused audits but do not replace a complete browser algorithm.
References
Similar or alternative tools
- HTML Fragment ID Name Collision Audit
Audit exact cross-namespace collisions between supplied HTML IDs and legacy named anchors with both source index lists; no browser target resolution.
- HTML Option Selected State Reconciliation
Reconcile explicit option selected flags for a static single/multiple select; last selected wins in single mode and first defaults, excluding disabled-option and live-dirty-state behavior.